Unidac (delphi) macro issue



我有查询:

select &macro1 from table1
where &macro2

德尔福密码:

macrobyname('macro1').value := 'field1 as test,field2';
macrobyname('macro2').value := 'test=1';

我收到这样的错误:

Unknown column test in where clouse

问题2)

显示消息(sql.text);结果是"从表 1 中选择 &macro1,其中 &macro2" 但我希望"从表 2 中选择字段 1 作为测试,字段 1,其中 test=1"

如何在宏替换后获取 SQL.文本。

(请原谅我英语不好)。

此致敬意努里

你没有说你正在使用什么数据库,但我使用的那些(SQL Server和Sybase)不允许在where子句中使用字段别名。所以你不得不说:

macrobyname('macro2').value := 'field1=1';

标准 SQL 不允许在 WHERE 子句中引用列别名。之所以施加此限制,是因为在计算 WHERE 子句时,可能尚未确定列值。别名可以在 ORDER BY 子句中使用,但不能在 WHERE、GROUP BY 或 HAVING 子句中使用。

相关内容

  • 没有找到相关文章

最新更新