我有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没有涉及数据访问)的地方有什么关系? –