Wie ist die Tabelle definiert?
Hat sie überhaupt eine RowID?
Stichwort: WITHOUT ROWID
https://www.sqlite.org/c3ref/last_insert_rowid.html
Oder meinst du vielleicht last_insert_id?
Aber das hat SQLite nicht, also für die Spalte als PRIMARY KEY.
Echt schade, dass RETURNS nicht zum
SQL-Standard gehört.
https://www.postgresql.org/docs/9.1/...efunction.html
Vielleicht mal als gemeinsames Script versuchen:
Delphi-Quellcode:
qMain.SQL.Text:='INSERT INTO KONTAKTE(NAME,VORNAME,GEB,STRASSE,NR,PLZ,ORT,TEL,EMAIL,BEMERKUNG)'+'values(:NAM,:VNA,:GEB,:STR,:NR,:PLZ,:ORT,:TEL,:EMA,:BEM);'#10;
+'SELECT LAST_INSERT_ROWID() AS ID;';
qMain.ParamByName('NAM').AsString:=edtName.Text;
qMain.ParamByName('VNA').AsString:=edtVorname.Text;
qMain.ParamByName('GEB').AsString:=edtGeb.Text;
qMain.ParamByName('STR').AsString:=edtStrasse.Text;
qMain.ParamByName('Nr').AsString:=edtNr.Text;
qMain.ParamByName('PLZ').AsString:=edtPLZ.Text;
qMain.ParamByName('ORT').AsString:=edtOrt.Text;
qMain.ParamByName('TEL').AsString:=edtTel.Text;
qMain.ParamByName('EMA').AsString:=edtemail.text;
qMain.ParamByName('BEM').AsString:=edtBemerkung.Text;
qMain.Open;
currentID:=qMain.FieldByName('ID').AsString;
qMain.Close;
refreshItems(currentID,edtName.text,edtVorname.Text,edtGeb.Text,edtStrasse.Text,edtNr.Text,edtPLZ.Text,edtOrt.Text,edtTel.Text,edtemail.Text,edtBemerkung.Text);
PS: SQLite kennt ein
INSERT OR UPDATE
oder
INSERT OR REPLACE
, wie sie es nennen,
also bezüglich der beiden
UPDATE
und
INSERT INTO
.
https://www.sqlite.org/lang_insert.html