IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.
Модератор: kdv
-
mad
- Сообщения: 3
- Зарегистрирован: 03 апр 2006, 12:16
Сообщение
mad » 03 апр 2006, 12:27
Сама функция из статей на Ibase.ru.
Подключаю к Firebird 1.5.2. Использую Delphi 2006
function AddA(var iSmall: SmallInt; var iLong: Integer): Integer; cdecl; export;
begin
Result := iSmall + iLong;
end;
Dll называется udftest.dll
В sqlmanagere for Interbase/Firebird
DECLARE EXTERNAL FUNCTION ADD_test_func
SMALLINT,
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'AddA' MODULE_NAME 'udftest';
Делай запрос.
select AddA(csh_sale,5) from cash;
И получаю ответ...
An error was found in the application program input parameters for the SQL statement.Dynamic SQL Error.
SQL error code = -804.
Function unknown.
ADDA.
Почему....
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 03 апр 2006, 12:51
потому
select ADD_test_func(csh_sale,5) from cash;
-
mad
- Сообщения: 3
- Зарегистрирован: 03 апр 2006, 12:16
Сообщение
mad » 03 апр 2006, 12:55
Invalid token.
Invalid request BLR at offset 60.
Function ADD_test_func is not defined.
Module name or entrypoint could not be found.
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 03 апр 2006, 12:57
dll куда положил? вызывает ли она другие dll? если да, то видны ли эти dll в path? В общем, FAQ...
-
mad
- Сообщения: 3
- Зарегистрирован: 03 апр 2006, 12:16
Сообщение
mad » 03 апр 2006, 20:51
Лежит в "C:\Program Files\Firebird\Firebird_1_5\UDF\"
Другие библиотеки не запускает..
-
kdv
- Forum Admin
- Сообщения: 6595
- Зарегистрирован: 25 окт 2004, 18:07
Сообщение
kdv » 03 апр 2006, 21:25
посмотри конфигурацию udf в firebird.conf
если все ОК, но udf не работает, запускай filemon (sysinternals.com), и мониторь fbserver.exe.
сотри в filemon все, сделай коннект, подготовся выполнить запрос. включи лог filemon, выполни запрос. смотри, куда чего и где ищется.