Einzelnen Beitrag anzeigen

daniel71

Registriert seit: 27. Sep 2007
38 Beiträge
 
Delphi XE Professional
 
#1

UPDATE funktioniert nicht mit Variabel als Spaltenname

  Alt 16. Jan 2008, 22:50
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADOConnection
Hallo

Kann mir jemand sagen wiso das nicht funktioniert?
Delphi-Quellcode:
  with Form1.ADOQuery5 do Begin
   Close;
   SQL.Text:='UPDATE '+
              '[Kontakt_TP] '+
             'SET '+
              ':pzKontaktSpalte = :pzKontaktWert '+
             'WHERE '+
              'PBX_Num_Am = :pzPBXNumAm ';
   ParamCheck := True;
   Parameters.ParamByName('pzKontaktSpalte').Value := zKontaktSpalte;
   Parameters.ParamByName('pzKontaktWert').Value := zKontaktWert;
   Parameters.ParamByName('pzPBXNumAm').Value := zPBXNumAm;
   ExecSQL;
  end;
oder das die fehlermeldung syntaxfelhler in der nähe von "wert von zKontaktSpalte" ausgibt
Delphi-Quellcode:
  with Form1.ADOQuery5 do Begin
   Close;
   SQL.Text:='UPDATE '+
              '[Kontakt_TP] '+
             'SET '+
              ''''+zKontaktSpalte+''' = '''+zKontaktWert+''' '+
             'WHERE '+
              'PBX_Num_Am = '''zPBXNumAm''' ';
   ExecSQL
  end;
das hier funktioniert
Delphi-Quellcode:
  with Form1.ADOQuery5 do Begin
   Close;
   SQL.Text:='UPDATE '+
              '[Kontakt_TP] '+
             'SET '+
              'Adresse = :pzKontaktWert '+
             'WHERE '+
              'PBX_Num_Am = :pzPBXNumAm ';
   ParamCheck := True;
   Parameters.ParamByName('pzKontaktWert').Value := zKontaktWert;
   Parameters.ParamByName('pzPBXNumAm').Value := zPBXNumAm;
   ExecSQL;
  end;
vielen dank für eure hilfe
  Mit Zitat antworten Zitat