Einzelnen Beitrag anzeigen

sharam

Registriert seit: 23. Feb 2004
7 Beiträge
 
#1

Übergabe von Spaltennamen

  Alt 26. Feb 2004, 11:25
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]
  Mit Zitat antworten Zitat