我知道我可以在使用ADO或OLE DB时为MS SQL Server设置连接超时,方法是将 Connect Timeout = somevalue 添加到连接字符串。
但这似乎不适用于ODBC连接。具体来说,我们决定使用Windows XP附带的标准SQL Server ODBC驱动程序(SQLSRV32.DLL版本2000.85.1132.00)而不是较新的SQL Native Client,并且使用此驱动程序时连接总是在15秒内超时,与连接超时设置无关。
此外,当它超时时,我会收到两个错误。第一个是超时,第二个是“无效的连接字符串属性”,所以我猜Connect Connectout不是我需要的。我错过了情节的最后线索来自这篇有点过时的文章:http://msdn.microsoft.com/en-us/library/ms811006.aspx
有没有人知道是否有办法在标准SQL Server ODBC驱动程序的连接字符串中指定连接超时?
答案 0 :(得分:6)
您可以通过将SQL_ATTR_CONNECTION_TIMEOUT连接属性设置为SQLSetConnectAttr来设置连接超时。
您可以通过使用SQLSetStmtAttr()设置SQL_ATTR_QUERY_TIMEOUT语句属性来设置语句查询超时。
答案 1 :(得分:0)
我有同样的问题。 实际上,就在我写这篇文章的那一刻,我检查了SQLSetConnectAttr并惊讶地阅读了第一句话
“ SQL Server本机客户端ODBC驱动程序忽略 SQL_ATTR_CONNECTION_TIMEOUT的设置。”