我測試的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