Страница 1 из 1

как распознать тип соединения с базой

Добавлено: 11 ноя 2005, 18:53
slav
embedded версия может соединиться с базой как server, client или embedded.

ситуация:

Yaffil (embedded) соединяется с базой isc_attach_database

после этого пользователь выбрал действие "Резервное копирование"

для начала вызывается функция isc_service_attach, на которой Yaffil
выдает ошибку: файл базы данных занят другим процессом

приходится делать isc_detach_database

потом backup (isc_service_attach,isc_service_start,isc_service_detach)

потом снова надо соединиться с базой isc_attach_database

когда Yaffil запущен как сервис (server) разрывать соединение с БД не нужно все проходит при установленном соединении

(что-то похожее описано в faq ibase.ru, хотя там про соединение с БД из двух разных gds32.dll, а у меня вроде из одной...)

НУ В ОБЩЕМ... мне из программы нужно определить соединение с БД произошло как embedded или нет...

кстати... в Firebird (по крайней мере в версии 1.5) нет подобной разницы в поведении при соединении.

Добавлено: 11 ноя 2005, 21:28
kdv
раз ТЫ сам соединяешься с БД из приложения, то именно ты и знаешь, указан там сервер или нет.

Добавлено: 12 ноя 2005, 08:20
slav
сервер можно указать как localhost: или mycompname:
в этом случае embedded попытается соединиться как server и если не получитиься то соединиться как embedded...