Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

AW: ID nicht gefunden nach last_insert_rowid()

  Alt 13. Mai 2017, 20:30
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Mai 2017 um 20:41 Uhr)
  Mit Zitat antworten Zitat