Hallo,
kann man eigentlich den Spaltennamen einer Tabelle als Parameter an einer 'CASE' Anweisung übergeben.
Habe eine Funktion namens getSQLdata(..) in der eine Select-Anweisung ausgefürt werden soll.
Delphi-Quellcode:
function GetSQLData(nr : integer) :
string;
begin
case (nr)
of
001 : Result := '
select * from tableName where spaltenName = :wert'; <--- SpaltenName wird nicht erkannt! Auch nicht mit :SpaltenName
end;
end;
Wie muß ich den spaltenNamen oben schreiben? Habe den SpaltenNamen auch bereits als ftVariant deklariert, leider ohne Erfolg. Kann das an dem Datentyp legen?
....
with ADOQuery1
do
begin
try
close;
sql.Clear;
sql.add(GetSQLdata(001));
Parameters.ParamByName('
spaltenName').DataType := ftstring; <--- string?
Parameters.ParamByName('
spaltenName').Value := spaltenName;
Parameters.ParamByName('
wertn').DataType := ftstring;
Parameters.ParamByName('
wert').Value := wert;
except
.....
end;
end;
.....
Habe den Aufruf auch direkt mit
sql.add('select * from tableName where ' + spaltenName + ' = ' + wert) versucht, leider auch ohne Erfolg.
Vielen Dank im Voraus
Sharam
[edit=sakura] [delphi]-Tags gesetzt. Mfg, sakura[/edit]