如何在Delphi中引用FireDAC中的字段名称

时间:2017-12-18 19:32:37

标签: delphi firedac

我正在处理在多个数据库上运行的应用程序,其中许多数据库都有自己的方式来引用保留字作为字段名称,例如 例如

select `key` from mytable

select "key" from mytable

select [key] from mytable

我想知道是否有预处理器命令(或其他一些机制)可以自动确定用于给定数据库的正确引号字符。是的(在有人评论之前)我不应该使用保留字来表示字段名称,但是模式已经预定义了(几十年前)。

1 个答案:

答案 0 :(得分:7)

对于常量SQL命令字符串,您可以使用 {id} 标识符替换escape sequence。示例用法:

FDQuery1.SQL.Text := 'SELECT {id Key} FROM {id MyTable}';
FDQuery1.Open;

对于代码分配,您可以将substitution variable宏与AsIdentifier访问者一起使用。示例用法:

FDQuery1.SQL.Text := 'SELECT &KeyCol FROM &TheTable';
FDQuery1.MacroByName('KeyCol').AsIdentifier := 'Key';
FDQuery1.MacroByName('TheTable').AsIdentifier := 'MyTable';
FDQuery1.Open;