** Smile |
Отправлено: 06.09.2005, 16:24 |
|
Не зарегистрирован
|
Кто-нибудь помогите, пожалуйста, найти способ проверки наличия соединения с SQL Server-ом через ADO компоненты в конкретный момент времени! Если вызывать метод Open(), допустим, компонента ADOQvery, то при наличии связи — это быстро, а при отсутствии — ожидание TimeOut-а, пока не выскачит исключение! Так долго ждать недопустимо! Может кто подскажет что-либо другое!!! Заранее благодарен!!! |
|
** full_lamer |
Отправлено: 06.09.2005, 16:58 |
|
Не зарегистрирован
|
У ADOConnection есть такое свойство Connected — если ошибаюсь — простите — уже более 3х месяцев Билдер не видел =( Соответственно этот компонент может быть источником связи для многих ADO-компонентов, значит проверив материнский — проверите и дочерние... имхо.
|
|
** Smile |
Отправлено: 06.09.2005, 17:43 |
|
Не зарегистрирован
|
Дело в том, что это свойство (допустим, у компонента ADOConnection) показывает выполнено ли соединение после вызова метода Open(), но если после этого остановить SQL Server, а потом снова запустить, то это свойство так и останеться true, но связь уже не возобновиться до того момента, пока не выполните Close() + Open()! |
|
Gedeon |
Отправлено: 07.09.2005, 11:56 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
У TADOConnection есть два свойства
TADOConnection::ConnectionTimeout
TADOConnection::CommandTimeout
ни о чем не говорит?
А проверять жив ли сервер в данный момент можно простой командой например
SELECT GETDATE()
|
|
** Smile |
Отправлено: 07.09.2005, 12:31 |
|
Не зарегистрирован
|
ConnectionTimeOut — это конечно хорошо! Но для меня даже секунда — критично! Есть соображения, если свойство KeepConnection поставить в false, то ConnectionTimeOut не учитывается, и если соединения нет, то исключение происходит сразу. Иначе — ждет ConnectionTimeOut. Я правильно понимаю??? Чем грозит отказ от KeepConnection? |
|
olegenty |
Отправлено: 07.09.2005, 13:44 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
отказ от KeepConnection грозит изменением SET-параметров, заданных для соединения вызовом команды SET. когда KeepConnection = false, реальный интерфейс ADOConnecton (тот, который COM-интерфейс), будет дропаться и подниматься заново. соответственно, и параметры соединения будут дропаться, и их также надо будет устанавливать заново.
|
|
Gedeon |
Отправлено: 07.09.2005, 13:55 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
>> Чем грозит отказ от KeepConnection?
Хэлп читайте
QUOTE |
When KeepConnection is false a connection is dropped when there are no open datasets. Dropping a connection releases system resources allocated to the connection, but if a dataset is later opened that uses the database, the connection must be reestablished and initialized. |
И вообще Вы никак не определите лег ли сервер если не выполняете какие-либо запросы к нему, так что через АДО самый быстрый интервал — секунда.
|
|
** Smile |
Отправлено: 07.09.2005, 14:40 |
|
Не зарегистрирован
|
Спасибо всем за ответы, относительно понял! Буду искать другие способы!!! |
|