Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2012, 18:59   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию Два firebird-а, gds32.dll и rfunc.dll

Доброго времени суток.
Проблема такая... Понадобилось запустить два firebird-а одновременно (1.5 и 2.5). Пока для теста запускаю их не как службы, а как приложения. Со службами разберусь потом...
В firebird-е 2.5 в файле firebird.conf раскомментировал строку и изменил порт
Код:
RemoteServicePort = 3051
В firebird-е 1.5 все оставил без изменений.

Запускаю оба firebird-а из командной строки
Код:
c:\Program Files (x86)\Firebird\Firebird_2_5\bin\   =>   fbserver -a
c:\Program Files (x86)\Firebird\Firebird_1_5\bin\   =>   fbserver -a
Запускаю IBExpert. Регистрирую базу на firebird 1.5:
Код:
Сервер: Удаленный
Имя сервер: localhost/3050
Файл БД: путь к файлу
И далее самое интересное... Я же не могу положить два файла от разных версий с одним именем gds32.dll в System32. Поэтому указываю полный путь к клиентской библиотеке, например, c:\gds32.dll. Соединение с БД происходит нормально, но при выполнении процедуры выходит ошибка, типа
Код:
function ENCODEDATE is not defined...
Это значит, что firebird в упор не видит UDF rfunc.dll

Если gds32.dll положить в System32, то все работает нормально. !!!!

Если библиотеку gds32.dll переименовать, например, в gds32_1.5.dll и положить ее в System32, правильно указав клиентскую библиотеку как gds32_1.5.dll, то та же ошибка (соединение с БД происходит, но rfunc.dll не подключается).

Пробовал переименовывать библиотеку как fbclient.dll, копировал ее в разные места, в том числе и в System32 - та же ошибка.

В общем, все работает только если файл называется именно GDS32.DLL и лежит именно в SYSTEM32. Но в таком случае вряд ли будет работать второй firebird.

firebird 2.5 на порте 3051 пока проверить не могу, так как в его базах не используется rfunc.dll. На первый взгляд все работает нормально.

Уф, сколько написал... Есть идеи? Что я делаю не так?

Последний раз редактировалось _SERGEYX_; 25.11.2012 в 19:03.
_SERGEYX_ вне форума Ответить с цитированием
Старый 25.11.2012, 19:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Понадобилось запустить два firebird-а одновременно
Стесняюсь спросить, зачем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.11.2012, 19:30   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Несколько программ на 1.5 работают по всей области в десятках расчетных центров. Теперь им всем устанавливают какую-то прогу (точно не помню как называется, типа Консультанта), которая работает на 2.5. Я подумал, что запустить сразу 2 firebird-а (разделив их по портам) будет наименьшим злом, чем переводить программы на 2.5 (в которых сотни хранимок, подключенные функции и т.п. и работа отлаживалась годами). Я бы, конечно, их перевел на 2.5, но как-то стрёмно, что ошибки посыплются эдак перед месячной отправкой данных в банки или перед годовым отчетом... Меня же бухгалтеры съедят...
_SERGEYX_ вне форума Ответить с цитированием
Старый 25.11.2012, 19:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А через 2 года будет прога на FB3
Что тоже отдельный сервер завернешь? И так серверов 50-100 сделаешь к концу эпохи?
Волков боятся - в бухгалтерию не ходить.
Между прочим обратная совместимость у них должна быть, так что базы и переделывать не придется.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.11.2012, 20:08   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

_SERGEYX_, а что те мешает повесить базу 1.5 на сервер 2.5? ... и пусть вертится себе
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 25.11.2012, 20:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а что те мешает повесить базу 1.5 на сервер 2.5?
Если мегапрограммисты прикрепили к конечным пользователям FBClient.DLL от 1.5, то есть шанс, что им от сервера с другой версией плохо станет - я сталкивался с этой тупостью со стороны разработчиков.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.11.2012, 20:54   #7
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Код:
повесить базу 1.5 на сервер 2.5
В том и дело, что не работает. Точнее, работает, но ошибки сыплются. Обычно на хранимых процедурах.

Базы FB 2.1 часто работают на 2.5 без всяких обрядов, а вот 1.5 не катит. Обратной совместимостью тут и не пахнет.
_SERGEYX_ вне форума Ответить с цитированием
Старый 25.11.2012, 21:40   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Обратной совместимостью тут и не пахнет.
Разве?....
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.11.2012, 21:58   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
азы FB 2.1 часто работают на 2.5 без всяких обрядов, а вот 1.5 не катит. Обратной совместимостью тут и не пахнет.
прекрасно реализована. Как пример - у нас на работе на одном компьютере юзается Контур-Экстерн для сдачи отчетности на 1.5+программа пенсионного для проверки на 2.х (не помню) и чей-то юридическое типа гаранта на 2.5. Каждая прога зарядила свою файрбред-службу при установке, я оставил только последнюю 2.5 - и все остальные прекрасно с ней работают.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# & DLL: как указать, что загружать DLL нужно из ЗАДАННОЙ папки "D:\My\Path\a.dll" ? AntyDES C# (си шарп) 11 10.10.2012 20:00
Debugger Kernel BORDBK160.DLL or BORDBK160N.DLL is missing or not registered. Человек_Борща Общие вопросы Delphi 0 15.07.2012 14:01
Два вопроса о *.dll iGlass Общие вопросы Delphi 3 10.01.2010 14:14
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36