2017-04-27 3 views
0
source:= tabledemap.FieldByName('table source').AsString + '('+ tabledemap.FieldByName('colonne source').AsString+')'; 
    showmessage(source) ; 

Der Quellenwert ist die Spalte: a.name (firsatname) ich die Zeichenfolge ‚t‘ Aber das Problem, das ich will in dieser Spalte eingefügt werden soll den Wert der Quellvariablen in einer sQL-Anfrage wie diese, wie eine Variable in einem Abschnitt in SQL verwenden, um von delphi

FDQuery6.SQL.Add ('INSERT INTO source Values ("t") '); 

    FDQuery6.Execute; 

     showmessage('row inserted'); 

zu verwenden, aber das Programm nicht den Text der Wert der Quellvariablen verwenden, und denken, dass Quelle ein Name einer Tabelle und zeigt mir ist

--------------------------- 
Notification des exceptions du débogueur 
--------------------------- 
Le projet x a déclenché la classe d'exception EMySQLNativeException avec le message '[FireDAC][Phys][MySQL] Table 'a.source' doesn't exist'. 

Ich habe "Quelle", + Quelle + versucht, aber es wird auch nicht funktionieren. Wenn jemand mir helfen kann, den Text der Quellvariablen in der SQL-Abfrage zu verwenden, bin ich dankbar.

Antwort

1

In FireDAC können Sie Tabellen- und Feldnamen mithilfe von Präprozessormakros paremetrisieren. Zum Beispiel:

FDQuery.SQL.Text := 'INSERT INTO &TableName (&FieldName) VALUES "ConstValue"'; 
FDQuery.MacroByName('TableName').AsIdentifier := 'MyTable'; 
FDQuery.MacroByName('FieldName').AsIdentifier := 'MyField'; 
FDQuery.ExecSQL; 

Einzelheiten über diese Art von Makros finden Sie in der substitution variables Thema.

Verwandte Themen