![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOConnection. Не закрывается соединение с базой данных. [D7, Sybase 5.5.04]
Shura © (2004-05-11 13:08:00)Привет !
Суть проблемы: после запуска приложения устанавливаем соединение с БД ADOConnection.Open. Необходимо в процессе работы перезапустить клиента базы с другими параметрами, задаваемыми в строке ADOConnection.ConnectionString, значения берутся из реестра. Но после Close закрывается только ADO - подключение, а клиент базы не закрывается, и на Open открывается старое подключение.
ADOConnection.KeepConnection:=False.
После закрытия приложения связь рвется сразу, поэтому, как мне кажется, дело не в настройках клиента.
Пробовал найти окно и по хэндлу его закрыть, но тогда Open проходит без ошибок, а клиент вообще не запускается.
Спасибо.
--
Shura
Shura (2004-05-11 17:21:00) [1]>В смысле - это другое приложение запущено??
Именно. Это стороннее ПО, через которое идет доступ к базе.
KSergey (2004-05-11 16:21:00) [2]> [3] Shura (11.05.04 14:57)
> А клиент - это
> виндовое окно, которое висит в панели задач.
В смысле - это другое приложение запущено?? Или того-же приложени окно? Но как тогда оно может оставаться после Ctrl+F2??
Shura (2004-05-11 14:57:00) [3]to Polevi: какие параметры, во всяком случае из доступных ни одного похожего на кэширование нет. Хотя по-моему это не в провайдере дело. Пробовал опыт: в процессе работы останавливаю программу в точке останова, делаю ADOConnection.Connected:=False и прерываю программу по Ctrl+F2 - клиент не закрывается, чего нет при нормальном завершении работы.
to Johnmen:
>Разрывается соединение. А что значит "клиент базы не >закрывается" вообще не ясно...
Может оно и разрывается, но не до конца:-). А клиент - это виндовое окно, которое висит в панели задач. После закрытия приложения оно закрывается автоматически.
ADOConnection.KeepConnection:=False - просто где-то на форумах видел что-то аналогичное по теме с таким советом. Может и лишний раз придется соединяться, но кэшированное соединение необходимо как-то закрыть, чтобы создать новое с другими параметрами ! Причем эта операция единичная.
Johnmen (2004-05-11 13:28:00) [4]>Но после Close закрывается только ADO - подключение, а клиент базы не закрывается
Разрывается соединение. А что значит "клиент базы не закрывается" вообще не ясно...
>ADOConnection.KeepConnection:=False.
А это-то зачем ? Чтобы лишний раз соединяться ?...
Polevi (2004-05-11 13:10:00) [5]дело в кешировании соединения на уровне провайдера
смотри параметры подключения