2010-02-22 2 views
2

Я знаю, что могу установить время ожидания соединения для MS SQL Server при использовании ADO или OLE DB, добавив Connect Timeout = somevalue в строку подключения.Тайм-аут соединения в ODBC

Это, похоже, не работает для соединений ODBC. В частности, мы приняли решение использовать стандартный драйвер ODBC SQL Server, который поставляется с Windows XP (SQLSRV32.DLL версия 2000.85.1132.00) вместо нового клиентского ядра SQL, и именно с этим драйвером соединение всегда разрывается на 15 секунд , независимо от Время ожидания подключения.

Кроме того, когда он истекает, я получаю две ошибки. Первый - это таймаут, а второй - «Недопустимый атрибут строки соединения», поэтому я предполагаю, что время ожидания подключения не то, что мне нужно. Окончательный ключ, который я упускаю из заговора, пришел из этой несколько устаревшей статьи: http://msdn.microsoft.com/en-us/library/ms811006.aspx

Кто-нибудь знает, есть ли способ указать время ожидания соединения в строке подключения стандартного драйвера ODBC SQL Server?

+0

Вы знаете, что есть 2 свойства времени ожидания: ConnectionTimeout и CommandTimeout? У вас действительно есть проблема при установлении соединения или уже при выполнении запроса? – van

+0

Таймаут возникает при установлении соединения через VPN-соединение через DSL. Иногда соединение происходит достаточно быстро, а затем приложение действительно отлично подходит для использования. Но в основном связь занимает слишком много времени, и это просто время. Я считаю, что 30-секундный тайм-аут будет идеальным, хотя я, очевидно, не смог его проверить. –

ответ

4

Вы можете установить время ожидания соединения, установив атрибут соединения SQL_ATTR_CONNECTION_TIMEOUT с помощью SQLSetConnectAttr.

Вы можете установить тайм-аут запроса инструкции, установив атрибут инструкции SQL_ATTR_QUERY_TIMEOUT с помощью SQLSetStmtAttr().

+0

Спасибо! Я взгляну. –

Смежные вопросы