Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi IndexProblem bei DB (https://www.delphipraxis.net/42086-indexproblem-bei-db.html)

RX3 13. Mär 2005 12:49

Datenbank: Paradox7 • Version: 7 • Zugriff über: BDE

IndexProblem bei DB
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo erstmal,

bin leider nicht der Beste was Delphi-Sachen angeht und bräuchte mal wieder Hiilfe. In der Suche hab ich auch nichts entdeckt, sorry.

Also hier mein Problem:
Ich will in einer Checklistbox verschiedene Items adden und löschen können. Aber jedesmal beim schliessen des Programms und wieder öffnen ist in der listbox immer 1 Item weniger und ich weiss nicht woran es liegt.

Die Items werden in einer Datenbank gespeichert für die ihr nen ALIAS "test"anlegen müsst.

Meine Vermutung wo der Fehler sein müsste hab ich als Kommentar eingefügt:
QC:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
while not table1.Eof do
  begin
  Checklistbox1.Items.Add(table1.fieldbyname('Genre').AsString);
  table1.Next;     //hier müsste ein Fehler vorliegen
  end;
end;

procedure TForm1.ButtonAddClick(Sender: TObject);
begin
checklistbox1.Items.Add(table1.fieldbyname('Genre').AsString);
table1.Insert;
end;

procedure TForm1.ButtonDeleteClick(Sender: TObject);
begin
checklistbox1.Items.Delete(checklistbox1.ItemIndex); //hier müsste ein Fehler vorliegen
table1.delete;
end;

Jelly 13. Mär 2005 12:57

Re: IndexProblem bei DB
 
Zitat:

Zitat von RX3
Delphi-Quellcode:
procedure TForm1.ButtonAddClick(Sender: TObject);
begin
checklistbox1.Items.Add(table1.fieldbyname('Genre').AsString);
table1.Insert;
end;

Durch ein Table1.Inser versetzt du die Tabelle lediglich in den Insert Modus. Um den Datensatz auch wirklich hinzuzufügen, fehlt noch ein anschliessendes Post. Dazwischen werden die Datenbankfelder gefüllt. Beendest du jetzt dein Programm, wenn die Tabelle noch im Insert Modus ist, ist der Datensatz verloren.

RX3 13. Mär 2005 13:01

Re: IndexProblem bei DB
 
Zitat:

Zitat von Jelly
Zitat:

Zitat von RX3
Delphi-Quellcode:
procedure TForm1.ButtonAddClick(Sender: TObject);
begin
checklistbox1.Items.Add(table1.fieldbyname('Genre').AsString);
table1.Insert;
end;

Durch ein Table1.Inser versetzt du die Tabelle lediglich in den Insert Modus. Um den Datensatz auch wirklich hinzuzufügen, fehlt noch ein anschliessendes Post. Dazwischen werden die Datenbankfelder gefüllt. Beendest du jetzt dein Programm, wenn die Tabelle noch im Insert Modus ist, ist der Datensatz verloren.

damit ist das Indexproblem aber noch nicht gelöst!!

Jelly 13. Mär 2005 13:03

Re: IndexProblem bei DB
 
[quote="RX3"]
Zitat:

Zitat von Jelly
hmm, das heisst also wenn ich noch Table1.Post hinzufüge müsste es klappen ?

Zitat:

Zitat von RX3
Delphi-Quellcode:
procedure TForm1.ButtonAddClick(Sender: TObject);
begin
checklistbox1.Items.Add(table1.fieldbyname('Genre').AsString);
table1.Insert;
table1.Post;  
end;


So fügst du einen leeren Datensatz hinzu... Zwischen Insert und Post füllst du die Felder...
Delphi-Quellcode:
table1.fieldbyname('Name').AsString := 'irgendwas' ;
...

RX3 13. Mär 2005 13:09

Re: IndexProblem bei DB
 
Aber ich versteh nicht was das mit dem Indexproblem zu tun hat!??

ach ja und es wird beim öffnen des Progs immer eine leere checkbox an die erste Stelle hinzugefügt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz