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.