如何调试SQL字符串

总览

我们在这里遇到的最流行(经常发生而不是最不喜欢)的问题之一是在VBA代码中创建/操作SQL字符串。 在其他编码环境中也是如此,但是我将在这里处理VBA。

说明

之所以如此困难,是因为所有工作都在重定向级别上完成。 我的意思是,编码器永远不会直接与SQL本身一起工作,而是与代码一起工作,而代码又依赖于代码来生成他们所设想的SQL。 这与编码人员历来处理指针的问题非常相似。

解决方案

我经常向那些为此感到挣扎的编码人员(任何级别的编码人员-经验丰富的编码人员也会遇到这种情况)建议使用一种技术,即使用

MsgBox()函数或Debug.Print进入调试器窗口的立即窗格 ,以在使用SQL之前在字符串中显示SQL的值。 与MsgBox()相比 ,“即时窗格”选项的好处是可以将其复制并粘贴-例如,以字节为单位的帖子。

另一个选择,假设您相对满意

在VBA中进行调试只是简单地跟踪(可以设置一个断点来执行此操作)到将执行SQL字符串的行,然后可以直接查看字符串值(在Debug模式下以各种方式进行,包括打印到立即窗格 )。

要尝试的第三件事,因为有时通过VBA运行时看到的行为和错误消息与运行完整的QueryDef(在Access数据库中保存的查询)所看到的行为和错误消息不同,因此,需要打印SQL并将其放入QueryDef对象中,看看当您尝试运行它时会发生什么。 为此,只需创建一个QueryDef,并在将其打开进行设计时切换到SQL视图,然后将复制的SQL字符串粘贴到已存在的位置。 从那里运行,看看会发生什么。 与通过VBA执行信息相比,您可能会或可能不会获得更多信息。

结论

真正理解SQL字符串的含义以及在什么地方可能出现问题的时候要容易得多,当您可以完整地并以其真实形式看到它时,而不是在代码即将创建时。

这也是在论坛上询问SQL问题的更好的方法。 没有人会很高兴被问到有关您发布的VBA代码的SQL问题。

From: https://bytes.com/topic/access/insights/915252-how-debug-sql-string

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值