加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – FireDAC – 宏扩展后显示SQL

发布时间:2020-12-15 04:11:17 所属栏目:大数据 来源:网络整理
导读:我试图在FireDAC中使用宏来预处理我的SQL查询.我在数据模块上有一个TADQuery对象,其SQL设置如下: Select * from MyTable join OtherTable on MyTable.Key = OtherTable.KeyWhere 然后在我的代码中我这样做: WhereClause = 'stuff based on my form';Query.
我试图在FireDAC中使用宏来预处理我的SQL查询.我在数据模块上有一个TADQuery对象,其SQL设置如下:
Select * from MyTable
  join OtherTable on MyTable.Key = OtherTable.Key
&Where

然后在我的代码中我这样做:

WhereClause = 'stuff based on my form';
Query.MacroByName('Where').AsRaw := WhereClause;
Query.Open;

这对于复杂的查询非常有用,因为它允许我使用SQL属性编辑器确保我的字段和连接条件是正确的.

我的问题是由于我的where子句导致SQL语句失效.有没有办法在预处理之后看到要执行的SQL?现在我正在捕获FireDac错误并显示EADDBEngineException对象上的SQL.但是仍然显示我的原始SQL与宏.如果我在错误发生后无法访问它,那么无论如何都要强制进行宏替换,这样我就可以查看调试器中的SQL来帮助我查看错误.

如果重要,我将连接到MS Access数据库,目标是在不久的将来转移到SQL Server.

解决方法

(只是从未回答的问题列表中删除此问题)

来自评论:

Well,I’ve roughly checked what’s happening there and I’m still not
sure if calling Prepare (which is useless for you as I get) is the
minimal requirement to trigger that preprocessing. Though,the
preprocessed SQL,the one which is sent to the DBMS you can access
through the Text property (quite uncommon name for such property). – TLama Feb 21 ’14 at 8:18

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读