Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi,C++Builder, Lazarus (以及 Free Pascal), Mac OS X, iOS,Android,Linux和64和32位的FreeBSD等等。我们将长期的经验集于这个小组件,提供统一的数据库连接访问(如oracle、微软SQL等等)。这意味着你可以在你的项目之间轻松地切换不同的数据库,以及创建跨数据库应用程序接口。
宏可以帮助你动态更改SQL语句。它们允许通过用户定义的文本部分替换查询语句。宏由其名称标识,然后从SQL语句引用以替换它们关联值的出现。
第一步是将宏及其名称和值分配给数据集对象。然后修改SQL语句,将宏名称包含到所需的插入点中。使用 & ("at") 符号前缀每个名称,让UniDAC在解析时区分它们。当SQL语句出现的正确位置时,已解析的SQL语句将保存宏值而不是其名称。 例如,使用TableName宏名称具有以下语句:
你可以稍后将任何实际表名称分配给宏值属性,使SQL语句保持不变。
UniDAC用它们的值替换所有宏名称,并在请求SQL执行时将SQL语句发送到服务器。
请注意,使用TMacro AsString和Value属性是差别的。如果使用AsString属性设置宏,则它会被引用。例如,以下语句的Query1.SQL属性值的结果是相同的。
Query1.MacroByName('StringMacro').Value := '''A string'''; Query1.MacroByName('StringMacro').AsString := 'A string';
宏在对不同对象执行类似操作的脚本中十分有用。你可以使用将替换为对象名称的宏。它允许你拥有同一脚本文本并可以仅改变宏值。
你还可以考虑使用宏在语句的WHERE子句中构造适应性条件。