首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unidac (delphi)宏问题

Unidac (delphi)宏问题
EN

Stack Overflow用户
提问于 2013-10-07 14:48:31
回答 2查看 659关注 0票数 0

我有疑问:

代码语言:javascript
复制
select &macro1 from table1
where &macro2

delphi代码:

代码语言:javascript
复制
macrobyname('macro1').value := 'field1 as test,field2';
macrobyname('macro2').value := 'test=1';

我得到了一个类似这样的错误:

代码语言:javascript
复制
Unknown column test in where clouse

问题2)

showmessage(sql.text);结果是"select‘o1 from table1 where’O2“,但我希望是"select field1 as test,field2 from table1 where test=1”

如何在替换宏后获取sql.text。

(请原谅我的英语不好)。

致以最好的问候,努里

EN

回答 2

Stack Overflow用户

发布于 2013-10-07 15:15:54

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

代码语言:javascript
复制
macrobyname('macro2').value := 'field1=1';
票数 1
EN

Stack Overflow用户

发布于 2013-10-07 16:02:13

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19218607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档