Wie verwende ich ADO-Abfrageparameter, um Tabellen- und Feldnamen anzugeben?

Ich führe eineUPDATE Aussage in aTADOQuery und ich benutze Parameter für ein paar Dinge. Anfänglich hat das einwandfrei funktioniert, aber ich habe einen weiteren Parameter für den Tabellennamen und den Feldnamen hinzugefügt, und jetzt funktioniert es nicht mehr.

Der Code sieht folgendermaßen aus:

Q.SQL.Text:= 'update :tablename set :fieldname = :newid where :fieldname = :oldid';
Q.Parameters.ParamValues['tablename']:= TableName;
Q.Parameters.ParamValues['fieldname']:= FieldName;
Q.Parameters.ParamValues['oldid']:= OldID;
Q.Parameters.ParamValues['newid']:= NewID;

Und der Fehler, den ich bekomme:

Ich gehe davon aus, dass ich diesen Feldnamen zweimal verwende. Ich kann dieses Problem beheben, indem ich zum zweiten Mal einen anderen eindeutigen Feldnamen verwende. Es tritt jedoch ein weiterer Fehler auf:

Wie verwende ich die Parameter, um die zu aktualisierende Tabelle und das zu aktualisierende Feld anzugeben?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage