| Autor |
Beitrag |
Taladan
      
Beiträge: 88
Delphi 2005 Personal
|
Verfasst: Mi 30.07.03 14:21
ich hab eine Tabelle über einen Query angebunden über folgenden code
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.
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
|
Verfasst: 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
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 
_________________ Ein Computer ist nur so gut, wie der der ihn Bedient... Schade
|
|
neojones
      
Beiträge: 1206
Erhaltene Danke: 1
|
Verfasst: 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
|
Verfasst: Mi 30.07.03 15:52
Sorry, da hab ich mich wohl getäucht.
| 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 
      
Beiträge: 88
Delphi 2005 Personal
|
Verfasst: 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?
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
|
Verfasst: Do 31.07.03 13:36
Hi,
in einer Query kannst du nur über SQL Datensätze einfügen, ändern und löschen :
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 
      
Beiträge: 88
Delphi 2005 Personal
|
Verfasst: 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
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
      
Beiträge: 167
|
Verfasst: Do 31.07.03 14:38
Hi,
hast du sicher gestellt das die requestlive=true ist bei deiner Query Komponente. Solte dann funktionnieren.
Gruss,
Tom
|
|
Taladan 
      
Beiträge: 88
Delphi 2005 Personal
|
Verfasst: 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
      
Beiträge: 1547
Win 7
Delphi XE5 Pro
|
Verfasst: 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 
      
Beiträge: 88
Delphi 2005 Personal
|
Verfasst: Do 31.07.03 15:25
mein delphi kennt diesen befehl leider nicht.
|
|
Taladan 
      
Beiträge: 88
Delphi 2005 Personal
|
Verfasst: Sa 09.08.03 11:13
Die Daten sind wegen den SQL 'Order By' eine nur-Lesenvariante 
|
|