Sql 参数fdquerydelphi不起作用
我有以下delphi代码:Sql 参数fdquerydelphi不起作用,sql,delphi,parameters,Sql,Delphi,Parameters,我有以下delphi代码: FDQuery1.SQL.Clear; FDQuery1.SQL.Add('SELECT * FROM :Tablename'); FDQuery1.ParamByName('Tablename').AsString := 'tasks'; ShowMessage(FDQuery1.sql.Text); FDQuery1.Open; (从这个链接下载:) 它不起作用,因为参数未填充但保持不变。 有人知道为什么它没有被填满吗 因为通常不能在SQL命令中使用参数替换表名
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('SELECT * FROM :Tablename');
FDQuery1.ParamByName('Tablename').AsString := 'tasks';
ShowMessage(FDQuery1.sql.Text);
FDQuery1.Open;
(从这个链接下载:)
它不起作用,因为参数未填充但保持不变。
有人知道为什么它没有被填满吗 因为通常不能在SQL命令中使用参数替换表名。不过,您很幸运,FireDAC支持预处理器宏在SQL命令中参数化表名。因此,您可以编写以下示例(请注意,如果您希望看到代码中的命令,则必须在宏预处理之后,即调用之后):
有关这类宏的详细信息,请参阅主题。,因为通常不能在SQL命令中使用参数替换表名。不过,您很幸运,FireDAC支持预处理器宏在SQL命令中参数化表名。因此,您可以编写以下示例(请注意,如果您希望看到代码中的命令,则必须在宏预处理之后,即调用之后):
有关此类宏的详细信息,请参阅主题。不能使用参数指定tablename。参数用于列值。啊,好的。谢谢。通常在运行时提供值或需要转义时使用参数。这里有一个文本值,
'tasks'
,它只包含ASCII字符。即使对于列值,也不需要使用参数。不能使用参数指定tablename。参数用于列值。啊,好的。谢谢。通常在运行时提供值或需要转义时使用参数。这里有一个文本值,'tasks'
,它只包含ASCII字符。即使对于列值,也不需要使用参数。
FDQuery1.SQL.Text := 'SELECT * FROM &TableName';
FDQuery1.MacroByName('TableName').AsIdentifier := 'tasks';
FDQuery1.Open;