在 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 中是否有特定的方法?
謝謝你。
uj5u.com熱心網友回復:
這就是 FireDAC 提供的宏:替換變數
select f1, f2
from t1
where id = :par1
and &column_name = :value_name
設定實際列是這樣的:
myQuery.MacroByName('column_name').AsRaw := 'department_name';
編輯:由于列名恰好是 DB identifier,因此使用AsIdentifier而不是AsRaw應該也可以。當列名可以是資料庫中的某個保留字并且必須以某種方式參考時,這甚至可能是必要的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315589.html
上一篇:為什么FileAge回傳意外值?
