source:= tabledemap.FieldByName('table source').AsString + '('+ tabledemap.FieldByName('colonne source').AsString+')';
showmessage(source) ;
源值是列:a.name(firsatname) 我想在此列中插入字符串' t' 但问题是我想在像这样的SQL请求中使用源变量的值
FDQuery6.SQL.Add ('INSERT INTO source Values ( "t" ) ');
FDQuery6.Execute;
showmessage('row inserted');
但程序无法使用源变量值的文本,并认为source是表的名称并显示给我
---------------------------
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'.
我试过"来源" ,+源+但它也不会起作用。 如果有人可以帮我在SQL查询中使用源变量的文本,我将不胜感激。
答案 0 :(得分:2)
在FireDAC中,您可以使用预处理器宏来对表和字段名称进行paremetrize。例如:
FDQuery.SQL.Text := 'INSERT INTO &TableName (&FieldName) VALUES "ConstValue"';
FDQuery.MacroByName('TableName').AsIdentifier := 'MyTable';
FDQuery.MacroByName('FieldName').AsIdentifier := 'MyField';
FDQuery.ExecSQL;
有关此类宏的详细信息,请参阅substitution variables主题。