Morgen,
ich brauch ein fortlaufenden Index für eine dBase Datenbank.
Mir ist es anscheinend nicht möglich die dBase Datenbank so einzustellen, dass eine Spalte als Indexfeld angesehen wird.
Jeder eingetragener Datensatz braucht ein eindeutiges Feld, welches die Spalte eindeutig macht.
Relevant ist dies beim löschen eines einzlnen Datensatzes.
Der Code dafür ist soweit fertig, dank der Hilfe von vielen anderen,
Thread hier zu lesen.
Ich hab jetzt zum Testen in die
DB eine Spalte eingefügt, welche als integer deklariert wurde. Die Spalte nennt sich "integ", nur als Test - wie gesagt.
Delphi-Quellcode:
q_Delete.SQL.Clear;
q_Delete.SQL.Add('DELETE FROM "t:eDienstreisebuch\mainDB.dbf" WHERE Integ=:Id');
q_Delete.ParamByName('Id').AsInteger := querysort.FieldByName('Integ').AsInteger;
q_Delete.ExecSQL;
MainDBtabelle.refresh;
querySort.Refresh;
Leider muss ich noch per Hand das >>Indexfeld<< "integ" mit Zahlen füllen. Das kann aber später nicht mehr sein, wäre auch zu umständlich das die User sich eine Zahl ausdenken müssten, wenn sie ihren Datensatz in die
DB übernehmen lassen.
Eine Notlösung wäre eine Zufallsrechnung, die ich auf die ButtonClickfunktion lege, des Abschickbuttons. Das kann aber auch wirklich nur ne Notlösung sein.
Kann wer helfen?