Autor Beitrag
Taladan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: Mi 30.07.03 14:21 
ich hab eine Tabelle über einen Query angebunden über folgenden code

ausblenden Delphi-Quelltext
1:
2:
3:
     hauptform.Query2.sql.clear;
     hauptform.query2.sql.add('select * from db\verteilungen where datumderverteilung  = '+'"'+combobox1.text+'"');
     hauptform.query2.active := true;


Die daten werden korrekt angezeigt. Dann geb ich den befehl query2.delete und der Datensatz verschwindet auf den fenster. doch sobald ich ihn wieder neu anzeigen lasse. erscheint er wieder. Eine überprüfung der tabelle zeigt, das der datensatz auch gar nicht gelöscht wurde.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
                hauptform.query2.first;
                while not (hauptform.query2.eof) do begin
                  hauptform.query2.delete;
                  hauptform.query2.refresh;
                end;


Edit: Bei falls ich seperat andere Daten dazu eingeben möchte, erhalte ich immer, das die daten weder im editier noch einfügemodus sind.


Zuletzt bearbeitet von Taladan am Sa 09.08.03 11:12, insgesamt 1-mal bearbeitet
kiroken
Hält's aus hier
Beiträge: 2

Win XP
D3 Prof, D5 Standard
BeitragVerfasst: Mi 30.07.03 15:12 
Titel: Query zickt
hi Taladan,

mit Query1.refresh verwirfst du alle deine Änderungen und liest die Tabelle neu ein. Wenn du deine Änderungen speichern willst versuch mal

ausblenden Delphi-Quelltext
1:
2:
  Query1.Delete;
  Query1.Post;


Deine Fehlermeldung könnte daran liegen, dass du vergessen hast die Eigenschaft Query1.RequestLive auf TRUE zu setzten. Ansonsten wird die Tabelle nur einmal eingelesen und dann die Verbindung getrennt.

Ich hoffe ich konnte weiterhelfen :idea:

_________________
Ein Computer ist nur so gut, wie der der ihn Bedient... Schade ;)
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Mi 30.07.03 15:24 
Hi,

nach einem Delete ist meines Wissens kein POST notwendig. POST ist lediglich nach einem EDIT notwendig (Ausser bei Datenbanken mit Transaktionskontrolle)

Korrigiert mich, wenn ich falsch liege.

Viele Grüße,

Matthias

_________________
Ha! Es compiliert! Wir können ausliefern!
kiroken
Hält's aus hier
Beiträge: 2

Win XP
D3 Prof, D5 Standard
BeitragVerfasst: Mi 30.07.03 15:52 
Sorry, da hab ich mich wohl getäucht. :oops:


Zitat:

nach einem Delete ist meines Wissens kein POST notwendig. POST ist lediglich nach einem EDIT notwendig (Ausser bei Datenbanken mit Transaktionskontrolle)


Nach einem DELETE ist in der Tat kein POST nötig.

Zitat:

Korrigiert mich, wenn ich falsch liege.


Wird nicht nötig sein.

_________________
Ein Computer ist nur so gut, wie der der ihn Bedient... Schade ;)
Taladan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: Do 31.07.03 10:56 
leider löscht der die daten trotzdem nicht. wenn ich den befehl query2.edit gebe, sagt er mir, das daten die nur zum lesen sind nicht bearbeitet werden können.

liegt es vielleicht daran, wie ich mein query.sql fülle?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
     hauptform.Query2.sql.clear;
     hauptform.query2.sql.add('select * from verteilungen where datumderverteilung  = '+'"'+combobox1.text+'"');
     hauptform.query2.sql.add('order by hauptgebiet, nebengebiet');
     hauptform.query2.active := true;


selbst über die standartnavigationsleiste von delphi für datenbanken kann ich im query nur navigieren.
Nico
Hält's aus hier
Beiträge: 9

Win ME, Win 98
D5 Prof
BeitragVerfasst: Do 31.07.03 13:36 
Hi,
in einer Query kannst du nur über SQL Datensätze einfügen, ändern und löschen :
ausblenden Quelltext
1:
2:
3:
4:
//Datensatz (-sätze) löschen:
Query1.sql.clear;
Query1.sql.add('DELETE FROM verteilungen WHERE datumderverteilung='+Quotedstr(combobox1.text));
Query1.Execsql;

Allerdings: Bedenke, das dann ALLE Datensätze mit mit dem entsprechendem Wert für Datumderverteilung gelöscht werden.
Taladan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: Do 31.07.03 14:00 
Danke. In diesen falle möchte ich das auch, aber wie würd ich das machen, wenn ich nur EINEN eintrag löschen möchte. z. b. den z. z. angewählten im dbgrid?

Noch ne frage. Wie kann es dann sein, das ich in einen anderen Query die dateien löschen kann. Da hab ich in der SQL anweisung (fest, nicht zur laufzeit) folgendes drin stehen

ausblenden Delphi-Quelltext
1:
select * from DB\Eigenschaften where ArtNr =  :Nr					


Hier kann ich über query1.delete ganz normal löschen, incl. der "physischen" löschung in der datenbank
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Do 31.07.03 14:38 
Hi,

hast du sicher gestellt das die requestlive=true ist bei deiner Query Komponente. Solte dann funktionnieren. :P

Gruss,
Tom
Taladan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: Do 31.07.03 15:17 
ja ist an. aber er sagt mir immer, das die daten weder im editier, noch im einfügemodus bzw das eine meine datenmenge nur zum lesen sei und nicht geändert werden könne. auch eine query1.edit oder eine table.edit bleiben ohne erfolg.
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 31.07.03 15:19 
hast du mal probiert, query.transaction.commit; nach deinem Delete auszuführen?

Gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
Taladan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: Do 31.07.03 15:25 
mein delphi kennt diesen befehl leider nicht.
Taladan Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 88


Delphi 2005 Personal
BeitragVerfasst: Sa 09.08.03 11:13 
Die Daten sind wegen den SQL 'Order By' eine nur-Lesenvariante :autsch: