gpt4 book ai didi

delphi - Firedac 将列名作为参数传递

转载 作者:行者123 更新时间:2023-12-04 16:23:11 27 4
gpt4 key购买 nike

在 Delphi Firedac 中,我有一个很长的查询。我想重用它只是通过这样的参数更改列的名称

select f1, f2
from t1
where id = :par1
and :colimn_name = :value_name

传递 :column_name 参数,结果查询是这样的:

select f1, f2
from t1
where id = 123
and 'department_name' = 'production'

用 2 '' 包裹列名。

如何避免这种情况,FireDAC 中是否有特定的方法?

谢谢。

最佳答案

这就是 FireDAC 提供的宏:Substitution Variables

select f1, f2
from t1
where id = :par1
and &column_name = :value_name

这样设置实际的列:

myQuery.MacroByName('column_name').AsRaw := 'department_name';

编辑:由于列名恰好是数据库标识符,所以应该使用AsIdentifier而不是AsRaw也可以工作。当列名可以是数据库中的一些保留字并且必须以某种方式引用时,这甚至可能是必要的。

关于delphi - Firedac 将列名作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69531370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com