одновременное подключение к IB 5.6 и 7.5
Модераторы: kdv, Alexey Kovyazin
одновременное подключение к IB 5.6 и 7.5
Наверное вопрос скорее для этого раздела.
Есть клиентское приложение на делфи и два IB сервера (windows 2003) с 2 базами. Первый - ib 7.5 sp1, второй - ib 5.6. Базы можно сказать идентичны, первая получена бэкап-рестором со старого сервера. Для работы проги соответвенно ставился interbase client от 5.6 и все работало. Причем соединялось с обеими серверами (старым и новым) без проблем.
У меня локально крутился сервер 5.6, сейчас соответственно понадобилось обновить его до 7.5. Поставил (win2000 serv), предварительно удалив предыдущий. В результате появилась проблема - при запуске с моей машины и соединении с удаленной базой под 5.6 приложение выдает ошибку (-923):Connection not established. В тоже время из ibexpert-а при этом я могу соединиться как с удаленной базой под 7.5, так и под 5.6, указав в последнем случае в кач-ве клиентской библиотеки gds32_old.dll (копия старой). А вот приложение не стартует, даже если я заменяю %systemroot%\system32\gds32.dll на ту, что идет вместе с ib клиентом 5.6.
Что я упустил? Вопрос сводится видимо к "что еще нужно приложению для соединения с удаленным сервером 5.6, если локально установлен сервер 7.5"? Саму прогу можно считать черным ящиком, есть только .exe-шник, ладно еще хоть сообщает код ошибки. Возможно путанно объяснил, с меня любые подробности.
Есть клиентское приложение на делфи и два IB сервера (windows 2003) с 2 базами. Первый - ib 7.5 sp1, второй - ib 5.6. Базы можно сказать идентичны, первая получена бэкап-рестором со старого сервера. Для работы проги соответвенно ставился interbase client от 5.6 и все работало. Причем соединялось с обеими серверами (старым и новым) без проблем.
У меня локально крутился сервер 5.6, сейчас соответственно понадобилось обновить его до 7.5. Поставил (win2000 serv), предварительно удалив предыдущий. В результате появилась проблема - при запуске с моей машины и соединении с удаленной базой под 5.6 приложение выдает ошибку (-923):Connection not established. В тоже время из ibexpert-а при этом я могу соединиться как с удаленной базой под 7.5, так и под 5.6, указав в последнем случае в кач-ве клиентской библиотеки gds32_old.dll (копия старой). А вот приложение не стартует, даже если я заменяю %systemroot%\system32\gds32.dll на ту, что идет вместе с ib клиентом 5.6.
Что я упустил? Вопрос сводится видимо к "что еще нужно приложению для соединения с удаленным сервером 5.6, если локально установлен сервер 7.5"? Саму прогу можно считать черным ящиком, есть только .exe-шник, ладно еще хоть сообщает код ошибки. Возможно путанно объяснил, с меня любые подробности.
imho по замене gds32.dll эксперимент не чистый. ищи поиском все такие файлы на компе. ibexpert от твоей проги ничем отличаться не должен, как минимум в плане коннекта. они оба вызвают isc_attach_database.
p.s. а вообще - забить болт. обратную совместимость никто не гарантирует. Или подсовывай свою gds32.dll каждой проге, или ...
p.s. а вообще - забить болт. обратную совместимость никто не гарантирует. Или подсовывай свою gds32.dll каждой проге, или ...
Re: одновременное подключение к IB 5.6 и 7.5
Попробуй бросить gds32.dll нужной тебе версии в каталог приложения, ибо винда сначала должна искать нужную DLL в каталоге приложенияvortex писал(а):А вот приложение не стартует, даже если я заменяю %systemroot%\system32\gds32.dll на ту, что идет вместе с ib клиентом 5.6.
Что я упустил? Вопрос сводится видимо к "что еще нужно приложению для соединения с удаленным сервером 5.6, если локально установлен сервер 7.5"? Саму прогу можно считать черным ящиком, есть только .exe-шник, ладно еще хоть сообщает код ошибки. Возможно путанно объяснил, с меня любые подробности.
гланое - не запутаться с ними потом
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
т.е. дело может быть _только_ в gds32.dll и ничем больше? Эту библиотеку от младшего сервера я подкладывал и в каталог с прогой и в system32 и в прочие места указанные в path. Потом просто запустил тулзу dllshow и посмотрел какую конкретно библиотеку использует приложение. dllshow показывает, что приложение использует (пытается) библиотеку из c:\winnt\system32\
Замена к сожалению не приводит к позитиву.
Ключи реестра и наличие каких-либо остаточных файлов от ib 5.6 не могут мешать коннекту?
Замена к сожалению не приводит к позитиву.
Ключи реестра и наличие каких-либо остаточных файлов от ib 5.6 не могут мешать коннекту?
Исходников нет, факт. Но проблема неожиданно разрешилась сама собой. Особенного ничего не делал, просто отыскал все gds32.dll разбросанные по диску и привел их к общему знаменателю. в system32 (и где оно еще нашлось) положил длл от 5.6, в interbase\bin сервера - родную от 7.5. Заработало
Может мне конечно каким-то боком мешалась та, что шла в комплекте с php5 (тоже есть на компе), но это уже не важно. Всем спасибо.
Может мне конечно каким-то боком мешалась та, что шла в комплекте с php5 (тоже есть на компе), но это уже не важно. Всем спасибо.