Проблема тайм-аута соединения ADO - PullRequest
2 голосов
/ 30 марта 2011

Использование класса TADOConnection для подключения к SQL-серверу 2005 г.д.

Имеет ConnectionTimeOut: = 5;// секунд.

Попытка синхронного открытия соединения.

Когда сервер доступен и работает, время ожидания соединения работает нормально.Если сервер недоступен или сетевое соединение потеряно, то попытка открыть соединение ждет более 5 секунд (может быть 20 секунд).

Существует ли какое-либо свойство или метод, который необходимо настроить для воздействияэто поведение?

Ответы [ 2 ]

1 голос
/ 30 марта 2011

Нет, достаточно установить свойство ConnectionTimeout

У меня была точная проблема (D2009, MSSQL2005), но TADOConnection.ConnectionTimeout у меня отлично работает (кстати, значение по умолчанию для этого свойства составляет 15 секунд).Обратите внимание, что разброс тайм-аута довольно широк, поэтому, как только у вас будет тайм-аут через 5 секунд и позже, например, через 10 секунд, но 20 секунд на самом деле слишком много для попытки подключения.

Возможно, у вас естьпроблема с CommandTimeout (если вы пытаетесь выполнить запрос со связанным компонентом набора данных ADO).Вы должны помнить, что если вы установите TADOConnection.ConnectionTimeout: = 5 и в своем компоненте набора данных, например, TADOQuery.CommandTimeout: = 15, и вы попытаетесь выполнить запрос, то через 20 секунд вы получите тайм-аут.

Если у вас действительно есть проблема с выполнением запроса, а не только с попыткой подключения, этот пост может помочь вам ADO компоненты CommandTimeout

0 голосов
/ 30 марта 2011

TADOConnection.ConnectionTimeout - время ожидания в миллисекундах для подключения к источнику данных TADOConnection.CommandTimeout - время ожидания в миллисекундах для выполнения команды

если при попытке соединения возникла ошибка тайм-аута, увеличьте значение свойства ConnectionTimeout, в противном случае, если вы получили ошибку при выполнении какого-либо запроса, - увеличьте значение свойства CommandTimeout.

...