如何在delphi

时间:2017-04-27 10:38:58

标签: mysql sql delphi delphi-xe rad

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查询中使用源变量的文本,我将不胜感激。

1 个答案:

答案 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主题。