Hallo zusammen,
ich habe früher meine
SQL-Statements immer über den Formatbefehl zusammengesetzt, z.B.:
Code:
MyQuery.SQL.Text := format('SELECT * FROM `%s`;',[Tabellenname]);
Da dies Methode ziemlich unsicher ist, wenn der Tabellenname beispielsweise von einem User eingetippt werden kann (Stichwort "
SQL-Injection"), möchte ich künftig lieber sauber mit Parametern arbeiten. Bei Values - z.B. in Where-Bedingungen - ist das auch gar kein Problem. Aber bei Feld-,
DB- und Tabellennamen funktioniert das scheinbar nicht. Beispiel:
Code:
MyQuery.SQL.Text := 'SELECT * FROM :TabName;';
MyQuery.ParamByName('TabName').AsString := TabellenName;
MyQuery.Open;
Das führt zu einem Fehler, da der Tabellenname offenbar mit führendem und schließendem Hochkomma in das
SQL-Staement eingebaut wird.
:TabName in die bei Feld- und Tabellennamen üblichen Hochkommas zusetzen (`:TabName`), hilft auch nicht...
Übersehe ich da was oder funktionieren
DB-, Tabellen- und Feldnamen einfach nicht über Parameter?
Danke im Voraus!
Freejay