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

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
slav
Сообщения: 2
Зарегистрирован: 11 ноя 2005, 16:49

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

Сообщение slav » 11 ноя 2005, 18:53

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) нет подобной разницы в поведении при соединении.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 ноя 2005, 21:28

раз ТЫ сам соединяешься с БД из приложения, то именно ты и знаешь, указан там сервер или нет.

slav
Сообщения: 2
Зарегистрирован: 11 ноя 2005, 16:49

Сообщение slav » 12 ноя 2005, 08:20

сервер можно указать как localhost: или mycompname:
в этом случае embedded попытается соединиться как server и если не получитиься то соединиться как embedded...

Ответить