【发布时间】:2017-03-13 17:00:44
【问题描述】:
我在delphi中写了一个带有参数的SQL查询
WHERE L1.IdListino = :IdListino
根据用户的一些输入,我希望此参数是表单的字段(tParsIdListinoExport 是字段的名称)或另一个表的列(类似于 WHERE L1.IdListino = fat.IdListino )。
if tParsIdListinoExport.AsString <> '' then
qSel.ParamByName( 'IdListino' ).AsString := tParsIdListinoExport.AsString
else
qSel.ParamByName( 'IdListino' ).Value := 'fat.IdListino';
end;
可悲的是,看起来我无法插入列名作为参数,因为它在列名周围添加了 '',因此将其视为纯文本。 是否可以从参数中删除“”? 非常感谢,
法比奥
【问题讨论】:
-
参数不是这样工作的。如果您需要对字段名称进行字符串替换,请使用
Format。 -
@KenWhite 所说的。通常,在 SQL 查询中,参数是 columns 中 values 的占位符,而不是实体名称(如列、表、视图等)的占位符。
-
正如 Ken 所说……这不是参数的工作方式。如果客户端有要使用的值,那么参数是将其与服务器通信的最佳方式。参数值不会烧录到 SQL 代码中,而是单独传递。如果您希望服务器加入并使用另一个表中的值,那么您必须构建正确的 SQL 语句(不带参数)。
标签: sql delphi parameters