Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

Ошибка при использовании UDF   Найти похожие ветки 

 
Павел ©   (2005-10-15 18:52) [0]

вот такая библиотека:
library lib;
uses
 SysUtils,Classes;

function GetServDate():integer;
begin
 result:=trunc(date);
end;

exports GetServDate;
begin
end.

Вот так подключаю:
DECLARE EXTERNAL FUNCTION SERVDATE
RETURNS INTEGER BY VALUE
ENTRY_POINT "GetServDate" MODULE_NAME "D:\Base\lib.dll"

далее так вызываю:

.....
d1=servdate();
.....
при попытке использовать таким образом появляется соообщение об ошибке:
Invalid token.
invalid request BLR at offset 233.
function SERVDATE is not defined.
module name or entrypoint could not be found.

в чем дело?


 
Павел ©   (2005-10-15 19:56) [1]

неужели никто не подскажет?


 
Desdechado ©   (2005-10-15 20:45) [2]

видимо, указанный путь к DLL не является путем, где сервер его ищет
я бы писал просто имя библиотеки, даже без расширения, а саму DLL положи в подкаталог Firebird\UDF

кстати, зачем получать время сервера таким ужасным методом, для этого есть "now", CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP


 
Павел ©   (2005-10-15 20:52) [3]

я пробовал ложить в папку файрбёрд\удф - не помогает

а способ такой потомучто нет другого для получения численного значения даты...я по крайней мере не знаю как еще можно :)


 
Desdechado ©   (2005-10-15 20:57) [4]

если положил в Firebird\UDF, переопредели функцию в БД, убрав старый путь
численного - это что такое?
попробуй функцию EXTRACT


 
Павел ©   (2005-10-15 21:02) [5]

численное значение, это аналог типа datetime в Delphi, т.е. дата это число дней, прошедших с какого то дня(че то типа 1 января 1900 года) по день этой даты :)


 
Павел ©   (2005-10-15 21:07) [6]

а что за функция extract?


 
Desdechado ©   (2005-10-15 21:11) [7]

а что, трудно вычесть из текущей даты твое начало отсчета? вот и будет число дней
на чистом SQL можно


 
Павел ©   (2005-10-15 21:29) [8]

ладно, допустим, но проблему то всеравно надо решить, мне не только такая UDF нужна будет :)


 
Desdechado ©   (2005-10-15 21:37) [9]

на ibase.ru усть статьи, примеры и готовые библиотеки


 
isasa ©   (2005-10-15 22:35) [10]

Что-бы не нарваться далее на грабли, точку входа опиши
function GetServDate():integer; stdcall;


 
DrPass ©   (2005-10-16 01:28) [11]


> Что-бы не нарваться далее на грабли, точку входа опиши
> function GetServDate():integer; stdcall;

function GetServDate():integer; cdecl;
Это же не WinAPI


 
isasa ©   (2005-10-16 11:31) [12]

DrPass ©   (16.10.05 01:28) [11]
А что, в Firebird все вызовы cdecl?
Стандартное соглашение в Win32 - stdcall.

Павел ©   (15.10.05 18:52)
В общем случае см. документацию по Firebird.


 
DrPass ©   (2005-10-16 23:59) [13]


>
> isasa ©   (16.10.05 11:31) [12]
> А что, в Firebird все вызовы cdecl?

Ага



Страницы: 1 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
14-1131312391
нечисть
2005-11-07 00:26
2005.11.27
Отключить звук в ИБП Ippon.


2-1131605932
barakuda
2005-11-10 09:58
2005.11.27
Jpeg + БД


14-1130932629
DVM
2005-11-02 14:57
2005.11.27
Связь 100Мбит по медным парам.


14-1131157454
Доколи
2005-11-05 05:24
2005.11.27
Доколи будут уменьшаться техпроцессы ?


8-1120504169
WST
2005-07-04 23:09
2005.11.27
Обработка изображений разных форматов (PNG,PCX,GIF,PSD,etc)