Einzelnen Beitrag anzeigen

gemy

Registriert seit: 17. Feb 2019
34 Beiträge
 
#8

AW: SQLQuery das Feld 'id' wurde nicht gefunden.

  Alt 17. Feb 2019, 12:46
Das im Bild angezeigte Feld ID ist aber nicht identisch mit dem Alias id aus Deinem SQL:
Code:
SELECT last_insert_rowid() as id FROM users
Hier gibst Du dem Ergebnis von last_insert_rowid() den Namen ID. Die Tabelle Users hat aber schon ein Feld mit dem Namen ID. Da könnte es also zu einem Konflikt kommen. Wie wäre es denn mit:
Delphi-Quellcode:
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT last_insert_rowid() as My_Last_id FROM users');
SQLQuery1.open;
if not sqlquery1.IsEmpty then begin
  ID := SQLQuery1.FieldByName('My_Last_id').AsInteger;
end;
SQLQuery1.Close;
oder
Delphi-Quellcode:
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT last_insert_rowid() FROM users');
SQLQuery1.open;
if not sqlquery1.IsEmpty then begin
  ID := SQLQuery1.Fields[0].AsInteger;
end;
SQLQuery1.Close;



Habe in der Datenbank 'id' ind 'my_last_id' geändert. Nun kennt er in

Code:
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT last_insert_rowid() as my_Last_id FROM users');
SQLQuery1.open;
if not sqlquery1.IsEmpty then begin
  ID := SQLQuery1.FieldByName('My_Last_id').AsInteger;
end;
SQLQuery1.Close;
my_last_id nicht. Benenne ich in der Datenbank 'my_last_id' wieder in 'id' um, und benutze den unteren code, dann funktioniert das auslesen der last_insert_row. Ergebniss ist 37.


Code:
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('SELECT last_insert_rowid() FROM users');
SQLQuery1.open;
if not sqlquery1.IsEmpty then begin
  ID := SQLQuery1.Fields[0].AsInteger;
end;
SQLQuery1.Close;
  Mit Zitat antworten Zitat