我测试的Access-VBA控制过程的错误处理:如何模拟ODBC超时错误?
- 脚本的访问“控制器” DB开始。
- 脚本在第二个访问文件('数据库')中启动一个宏。
- '数据库'文件中的宏运行一堆可以查询的数据。
- 这些查询从链接到ODBC源的表(实际上是SQL-Server)中提取。
当这个过程在清晨运行,有时查询超时。今天,我更新了控制器脚本中的错误处理,所以我想模拟一个超时错误。
我已经看了MS Access中的ODBC管理员和高级选项,但我没有找到我需要的东西。想法?
我测试的Access-VBA控制过程的错误处理:如何模拟ODBC超时错误?
当这个过程在清晨运行,有时查询超时。今天,我更新了控制器脚本中的错误处理,所以我想模拟一个超时错误。
我已经看了MS Access中的ODBC管理员和高级选项,但我没有找到我需要的东西。想法?
在设计视图中打开您的宏。在查看菜单下,选择属性。 它应该是一个超时属性,将其设置为一个短值并进行测试。
在您的SQL查询中添加以下语句 - 它应该会导致超时。
--waits for 5 mins
WaitFor Delay '00:05'
或者,如果您不想修改现有查询,可以在宏查询的其中一个表上运行此操作。这将锁定表3分钟
begin transaction
Select *
From MyTable with (TABLOCKX)
--wait for 3 min
WaitFor Delay '00:03'
rollback transaction
我在传递查询中使用您的事务示例,但它始终提示我输入数据源。我如何将数据源放入交易中? – PowerUser 2010-09-23 16:50:40
@PowerUser - 你不能在SSMS查询窗口中运行这个查询吗?说实话,我不太了解MS Access。 – codingbadger 2010-09-23 16:53:29
对不起,我甚至不知道SSMS查询窗口是什么。很确定Access没有它。 – PowerUser 2010-09-23 17:05:42
如果您的查询是修改,您可以添加一个调用WAITFOR的触发器。 Described here.
好主意,但没有奏效。我认为该属性仅在服务器未能响应之后才会使用*。 – PowerUser 2010-09-23 16:29:00