DBgrid.clear

Rund um die LCL und andere Komponenten
Antworten
Zet_Bonton
Beiträge: 39
Registriert: Di 7. Apr 2009, 17:11

DBgrid.clear

Beitrag von Zet_Bonton »

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

leonis_minoris
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

Beitrag von leonis_minoris »

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

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: DBgrid.clear

Beitrag von baba »

Zet_Bonton hat geschrieben: ... den Inhalt des DBGrids löschen will ...
... ein DBGrid stellt nur die Menge einer Datenbank bzw. Abfrage (Querry) dar.

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.

Zet_Bonton
Beiträge: 39
Registriert: Di 7. Apr 2009, 17:11

Re: DBgrid.clear

Beitrag von Zet_Bonton »

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.

Christian
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

Beitrag von Christian »

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.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten