Hallo,
und zwar hätte ich eine einfache Frage. wenn ich den Inhalt des DBGrids löschen will dann klappt es wunderbar wenn in der Tabelle mind. zwei Datensätze vorhanden sind. Jedoch meckert es wenn in der Tabelle nur ein Datensatz vorhanden ist. Die Fehlermeldung List index -1 out of bounds wird ausgegeben. Kann mir jemand erkären wieso er das macht, und wie man das umgehen könnte?
Danke
DBgrid.clear
-
- Beiträge: 12
- Registriert: Fr 22. Jun 2007, 12:12
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Nähe Nürnberg
Re: DBgrid.clear
Hallo,
warum das Programm das so macht, kann ich Dir auch nicht sagen,
aber vielleicht läßt es sich einfach umgehen, indem man die Sätze
direkt in der Datenbank löscht.
leonis_minoris
warum das Programm das so macht, kann ich Dir auch nicht sagen,
aber vielleicht läßt es sich einfach umgehen, indem man die Sätze
direkt in der Datenbank löscht.
leonis_minoris
Re: DBgrid.clear
... ein DBGrid stellt nur die Menge einer Datenbank bzw. Abfrage (Querry) dar.Zet_Bonton hat geschrieben: ... den Inhalt des DBGrids löschen will ...
Was willst Du denn da löschen?
A) Die Datenbank (Dann lösche die Sätze in der Datenbank direkt)
B) Die Anzeige (Trenne die Verbindung zur Datenbank und das Grid ist leer)
Gruß
Baba.
-
- Beiträge: 39
- Registriert: Di 7. Apr 2009, 17:11
Re: DBgrid.clear
ich weiß schon das es möglich ist mit flags zu arbeiten um den Inhalt zu löschen, jedoch darf ich es so nicht machen.
die trennung zur datenbank bringt mir auch nichts, denn die verbindung muss aufrecht erhalten werden. ich versuch es einfach mal mit einer neuer query, die mir die anzahl der datensatz auspucken soll. Wenn die Anzahl der Datensatz = 1 ist soll er mir mit clearfields den Datensatz löschen. Ist zwar nicht elegant,aber was geschickteres fällt mir nicht ein.
die trennung zur datenbank bringt mir auch nichts, denn die verbindung muss aufrecht erhalten werden. ich versuch es einfach mal mit einer neuer query, die mir die anzahl der datensatz auspucken soll. Wenn die Anzahl der Datensatz = 1 ist soll er mir mit clearfields den Datensatz löschen. Ist zwar nicht elegant,aber was geschickteres fällt mir nicht ein.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: DBgrid.clear
Also ich sträub mich zwar davor nach der Crossposting Geschichte zu antworten aber bei so viel Unwissen muss ich wohl doch mal.
Lies dir mal ein Delphi Datenbanktuturial durch bitte, damit du wenigstens die grundlegenten Sachen weisst.
Das DBgrid zeit nur daten an das ist in keinster Weise dafür zu nutzen um Daten programmtechnisch zu manipulieren.
Wenn du einen Datensatz löschen willst, tust du das am Dataset mit MeinDataset.Delete; Das löscht den aktuellen Datensatz.
MeinDataSet.RecordCount gibt dir die anzahl Datensätze zurück die das Dataset gerade hält also ergebnis der aktuellen Abfrage sind.
Unter Umständen musst du bei SQL Datenbanken danach noch ein Commit machen damit die Änderungen auch wirklich in der Daenbank landen.
Lies dir mal ein Delphi Datenbanktuturial durch bitte, damit du wenigstens die grundlegenten Sachen weisst.
Das DBgrid zeit nur daten an das ist in keinster Weise dafür zu nutzen um Daten programmtechnisch zu manipulieren.
Wenn du einen Datensatz löschen willst, tust du das am Dataset mit MeinDataset.Delete; Das löscht den aktuellen Datensatz.
MeinDataSet.RecordCount gibt dir die anzahl Datensätze zurück die das Dataset gerade hält also ergebnis der aktuellen Abfrage sind.
Unter Umständen musst du bei SQL Datenbanken danach noch ein Commit machen damit die Änderungen auch wirklich in der Daenbank landen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/