Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#5

AW: ZEOS und Last_Insert nach Insert

  Alt 26. Jan 2018, 11:19
Man kann Tabellennamen nicht per Parameter übergeben!

Dashier geht nicht: fsql.SQL.Text := 'SELECT last_insert_rowid() as last FROM :table;'; Per Parameter kann man nur Werte für die Where-Bedingung übergeben, so wie es beim Insert gemacht wurde.

Dashier würde ebenfalls scheitern:
Delphi-Quellcode:
inherited Insert;
  if (fstate = rsNew) then
  begin
    fsql.SQL.Text := 'INSERT INTO :table (areaname,areadescr) VALUES(:areaname,:areadescr);';
    fsql.ParamByName('table').AsString := 'actionarea';
    fsql.ParamByName('areaname').AsString := fname;
    fsql.ParamByName('areadescr').AsString := fdescr;
    fsql.ExecSQL;
    fsql.Connection.Commit;
    faaid := GetInsertedId;
    findex := faaid;
    fstate := rsNone;
  end;
Das Problem ist also nicht die Nutzung des Tabellennamens im Statement überhaupt, sondern die Übergabe des Tabellennamens als Parameter.
  Mit Zitat antworten Zitat