одновременное подключение к IB 5.6 и 7.5

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
vortex
Сообщения: 9
Зарегистрирован: 17 июн 2007, 21:01

одновременное подключение к IB 5.6 и 7.5

Сообщение vortex » 17 июн 2007, 21:49

Наверное вопрос скорее для этого раздела.

Есть клиентское приложение на делфи и два 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-шник, ладно еще хоть сообщает код ошибки. Возможно путанно объяснил, с меня любые подробности.

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

Сообщение kdv » 18 июн 2007, 00:20

imho по замене gds32.dll эксперимент не чистый. ищи поиском все такие файлы на компе. ibexpert от твоей проги ничем отличаться не должен, как минимум в плане коннекта. они оба вызвают isc_attach_database.

p.s. а вообще - забить болт. обратную совместимость никто не гарантирует. Или подсовывай свою gds32.dll каждой проге, или ...

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Re: одновременное подключение к IB 5.6 и 7.5

Сообщение stix-s » 18 июн 2007, 08:45

vortex писал(а):А вот приложение не стартует, даже если я заменяю %systemroot%\system32\gds32.dll на ту, что идет вместе с ib клиентом 5.6.

Что я упустил? Вопрос сводится видимо к "что еще нужно приложению для соединения с удаленным сервером 5.6, если локально установлен сервер 7.5"? Саму прогу можно считать черным ящиком, есть только .exe-шник, ладно еще хоть сообщает код ошибки. Возможно путанно объяснил, с меня любые подробности.
Попробуй бросить gds32.dll нужной тебе версии в каталог приложения, ибо винда сначала должна искать нужную DLL в каталоге приложения
гланое - не запутаться с ними потом :)

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 18 июн 2007, 08:47

Мои собственные эксперименты показали, что gds32.dll от старших серверов (за исключением печально известного 2007) нормально работают с 5.6, если пользоваться только первым диалектом и совместимым минимумом фич.

vortex
Сообщения: 9
Зарегистрирован: 17 июн 2007, 21:01

Сообщение vortex » 18 июн 2007, 13:58

т.е. дело может быть _только_ в gds32.dll и ничем больше? Эту библиотеку от младшего сервера я подкладывал и в каталог с прогой и в system32 и в прочие места указанные в path. Потом просто запустил тулзу dllshow и посмотрел какую конкретно библиотеку использует приложение. dllshow показывает, что приложение использует (пытается) библиотеку из c:\winnt\system32\
Замена к сожалению не приводит к позитиву.
Ключи реестра и наличие каких-либо остаточных файлов от ib 5.6 не могут мешать коннекту?

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Сообщение stix-s » 18 июн 2007, 14:04

vortex писал(а): Саму прогу можно считать черным ящиком, есть только .exe-шник
Исходники, надо полагать, отсутствуют?

vortex
Сообщения: 9
Зарегистрирован: 17 июн 2007, 21:01

Сообщение vortex » 18 июн 2007, 15:55

Исходников нет, факт. Но проблема неожиданно разрешилась сама собой. Особенного ничего не делал, просто отыскал все gds32.dll разбросанные по диску и привел их к общему знаменателю. в system32 (и где оно еще нашлось) положил длл от 5.6, в interbase\bin сервера - родную от 7.5. Заработало :)
Может мне конечно каким-то боком мешалась та, что шла в комплекте с php5 (тоже есть на компе), но это уже не важно. Всем спасибо.

Ответить