Подключение библиотеки внешних функций к базе данных InterBa

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

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

Ответить
Rep
Сообщения: 5
Зарегистрирован: 02 дек 2007, 15:38

Подключение библиотеки внешних функций к базе данных InterBa

Сообщение Rep » 02 дек 2007, 15:42

Дано:
* Файл базы данных (*.GDB), работавший в программе с InterBase 7.0.0.206
* В этом файле .GDB используются внешние функции
(файл *.dll в котором находятся эти функции по данным IBConsole имеется в наличии и лежит в директории <interbase_home>/UDF)
* Сейчас на компе работает InterBase 7.51

Вопрос:
Как при просмотре таблиц этой базы данных в IBConsole не вылетало бы, например, такое сообщение об ошибке? :
Statement failed, SQLCODE = -104

invalid request BLR at offset 7
-function ABS is not defined
-module name or entrypoint could not be found
Такая же ошибка вылетает в ответ на запрос вида
SELECT * FROM НАЗВАНИЕ_ТАБЛИЦЫ; через isql.

Буду благодарен за любые советы по данному вопросу.

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

Сообщение kdv » 02 дек 2007, 15:47

все это есть в faq. www.ibase.ru/ibfaq.htm

Rep
Сообщения: 5
Зарегистрирован: 02 дек 2007, 15:38

Сообщение Rep » 02 дек 2007, 16:09

kdv писал(а):все это есть в faq. www.ibase.ru/ibfaq.htm
Спасибо.


[модератор: еще раз процитируем тут FAQ - отрублю логин на форум]
1) библиотека лежит в UDF директории
2) имеем WindowsXP
3) я не знаю как оно там внутри работает, но оно работает в программе с InterBase 7.0.0.206
4) здесь не до конца понял все:
нужно внести путь к ib_udf.dll в системный?
А сам сервер при инсталляции этого не сделал? ведь библиотека ib_udf.dll лежит в стандартном месте в директории сервера InterBase, а не где-то в стороне[/b]

Rep
Сообщения: 5
Зарегистрирован: 02 дек 2007, 15:38

Сообщение Rep » 02 дек 2007, 16:37

Для чего это нужно

Я в InterBase человек новый и мне это нужно, чтобы данные InterBase перенести в MySQL. Сама программа, в которой используется БД, сделать нужный мне импорт не позволяет, вот я и решил посмотреть ее через вновь скачанный InterBase 7.51. Но пока же сейчас я даже посмотреть не могу таблицы из-за пользовательских внешних функций (при просмотре вылетает вышеуказанная ошибка).

Поэтому прошу извинить за неточно сформулированные вопросы и объяснения.

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

Сообщение kdv » 02 дек 2007, 20:29

новый человек, не новый, не имеет значения.

базу, я так понял, ты где-то взял? Иначе смысла ставить 7.5.1 при имеющемся 7.0 я не понимаю.

функции в базе могут быть задекларированы в каталог с полным путем. т.е. почему не ищутся функции - описано в FAQ.

не знаете что такое "системный путь", или PATH - значит вам вообще ничего трогать не надо было.

Rep
Сообщения: 5
Зарегистрирован: 02 дек 2007, 15:38

Сообщение Rep » 02 дек 2007, 20:38

kdv писал(а):базу, я так понял, ты где-то взял? Иначе смысла ставить 7.5.1 при имеющемся 7.0 я не понимаю.
Не где-то, а она есть в купленной нами программе. Но нужно накопленные в программе со временем данные перенести в MySQL. Я об этом сказал уже.

kdv писал(а):функции в базе могут быть задекларированы в каталог с полным путем. т.е. почему не ищутся функции - описано в FAQ.

не знаете что такое "системный путь", или PATH - значит вам вообще ничего трогать не надо было.
Что это такое - я знаю. Я написал о том, что удивлен, почему нужно что-то дополнительно прописывать указывать для использования стандартных библиотек ib_udf.dll в стандартном каталоге.
Как будет доступ к своей машине -- попробую этот способ, но как-то странно-сумятно в interBase это устроено.

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

Сообщение kdv » 02 дек 2007, 22:48

Не где-то, а она есть в купленной нами программе.
тогда зачем ставить IB 7.5 ?
но как-то странно-сумятно в interBase это устроено.
все там нормально устроено. а вот что у Вас происходит - неизвестно. Я не помню, указывал-ли я в FAq о необходимости использования Filemon для подобного случая ошибки при загрузке стандартных udf.
В общем, смотрите в filemon почему стандартная ibudf не грузится.

Rep
Сообщения: 5
Зарегистрирован: 02 дек 2007, 15:38

Сообщение Rep » 03 дек 2007, 00:15

kdv писал(а):
Не где-то, а она есть в купленной нами программе.
тогда зачем ставить IB 7.5 ?
Потому что на офсайте не было нужной более старой версии 7.0. Брать ее откуда-то со стороны не захотел, чтобы исключить это как причину возможных нестыковок.
kdv, может можете дать надежную ссылку?

kdv писал(а):Я не помню, указывал-ли я в FAq о необходимости использования Filemon для подобного случая ошибки при загрузке стандартных udf.
В общем, смотрите в filemon почему стандартная ibudf не грузится.
PATH дополнил нужными путями.
Filemon тоже ничего не показал:
673 22:41:10 ibserver.exe:2228 OPEN C:\Program Files\Borland\InterBase\UDF\mig000.dll SUCCESS Options: Open Access: 00100020
mig000.dll - это модуль с нужными пользовательскими функциями.
Т.е. все сервер находит, но почему-то выдает ошибку.

Вместо IBConsole установил IBExpert (с указанаием версии базы данных как 7.0): выдает ту же самую ошибку.

Где еще можно искать причину...
Остается еще попробовать найти сервер версии 7.0 и все делать именно с ним.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 03 дек 2007, 00:42

Rep писал(а):Где еще можно искать причину...
В зависимостях

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

Сообщение kdv » 03 дек 2007, 10:22

kdv, может можете дать надежную ссылку?
1. триала 7.0 уже давно нет
2. переход с 7.0 на 7.1/7.5 - платный
3. если вам не продали 7.0 вместе с программой, и вы ее (7.0) не купили - значит оно у вас нелегально.
mig000.dll - это модуль с нужными пользовательскими функциями.
Т.е. все сервер находит, но почему-то выдает ошибку.
может, вы взяли и перекинули ВСЕ ddl из папки udf 7.0 в папку udf 7.5, чего делать категорически не следовало.
если сервер выдает ошибку действительно на abs, то или не грузится ibudf, или ibudf не от той версии сервера. я не случайно сразу показал в faq, там все могущие возникать проблемы перечислены. в основном, такое, конечно, бывает только с внешними или самописными udf. "Системные", которые в поставке сервера (напр ibudf) таких проблем обычно не вызывают.
с указанаием версии базы данных как 7.0
вы думаете, что указав в клиентской части "версию сервера 7.0" сервер начнет работать как эта версия? Указать там Firebird 1.5 не пробовали? :)

Ответить