我有msaccess數據庫連接到sql server通過鏈接表使用「sql server」odbc驅動程序。除了涉及交易時,它大多運作良好。msaccess odbc到sqlserver 2005鎖定:超時
問題我想不通一種解決方法是「鎖:超時」,當MSACCESS形式決定對自己進行刷新,而大交易正在處理(10-30秒)發生。
如果msaccess嘗試擊中被事務鎖定的行,sql分析器會立即顯示Lock:Timeout,但MSAccess無法處理此事件,並鎖定應用程序直至其自身的querytimeout過期(60秒)。愚蠢的是,它也暫停了VBA,因此交易無法完成。
除了關閉在這些批次中打開的所有表單之外,我該怎麼辦?
如果我能設置的ODBC連接的是MSSQL鎖定超時,該交易可能有機會來完成,但似乎並沒有成爲這個連接字符串參數。這很棘手,因爲MSAccess的背景行爲大多不受我的控制。我很確定沒有可以爲sql數據庫設置的全局鎖定超時。
任何想法? 謝謝 盧克
這是否適用於ODBC鏈接表以及在其上創建的DAO記錄集? –
我假設你的意思是使用dao和msaccess的當前連接。我真的不知道如何設置這些鎖定超時。我相信在locktimeout發生後它會很好地運行currentdb.querytimeout。我正在用半打自動化虛擬機來壓力測試我的數據庫,並且我不能在我的生活中弄清楚如果某些事情被另一個客戶端鎖定,如何及時使msaccess超時。我想這是另一個問題。儘管微軟在2006年發表了Andy Baron的論文,但我開始懷疑msaccess和odbc在多用戶環境中的可行性。 –
好吧,有很多DAO記錄集沒有在代碼中明確創建。例如,當您分配使用ODBC鏈接表的窗體的記錄集時,窗體的.Recordset屬性是一個DAO記錄集。所以,我的問題是ADO超時設置與Access中所有ADO記錄集根本不涉及(因爲ADO沒有涉及數據訪問)的地方有什麼關係? –