Создание и подключение UDF Firebird 1.5
Нужна помошь.
Вот исходник.
//---------------------------------------------------------------------------
#include <windows.h>
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
extern "C" char* __declspec(dllexport) GetUniqID();
extern "C" int __declspec(dllexport) UniqID();
//---------------------------------------------------------------------------
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------
char* GetUniqID()
{
return "ABCDEFGHIJKLMNOP";
}
//---------------------------------------------------------------------------
int UniqID()
{
return 1;
}
//---------------------------------------------------------------------------
Вот код подключения
DECLARE EXTERNAL FUNCTION GETUNIQID
RETURNS VARCHAR(20)
ENTRY_POINT '_GetUniqID' MODULE_NAME 'KichUDF.dll'
DECLARE EXTERNAL FUNCTION UNIQID
RETURNS SMALLINT
ENTRY_POINT '_UniqID' MODULE_NAME 'KichUDF'
Цепляю на тригер
CREATE TRIGGER GET_UID FOR FOODSTUFFCLASSES
ACTIVE BEFORE INSERT POSITION 0
AS
begin
foodstuffclasses.id_yelding = uniqid();
end
Выдаёт после вставки ошибку
Error Message:
----------------------------------------
Access violation at address 00D94E53 in module 'IBExpert.exe'. Read of address 00000000
[00D94E53]
[00403B9F]
[00D95112]
[00590869]
[0087CCA7]
[0058589D]
[0057B7C9]
[0057D025]
[0045BC27]
[00457AA2]
[00457F6F]
[0045BBC0]
[0057D294]
[00443D4C]
[00CFAB61]
[0053F8ED]
[005411A2]
и глухо зациклевается на ней...
Помогите.:confused: