Subject | Writing UDF with Freepascal |
---|---|
Author | kschit |
Post date | 2008-01-01T18:46:38Z |
Hello everybody,
I've tried to write with Freepascal a UDF for Firebird.
library udf_upper;
{$mode DELPHI}{$H+}
{$PACKRECORDS C}
uses
Classes
{ you can add units after this };
function UTF_UPPER(wert : PChar) : PChar; cdecl; export;
begin
wert1 := String(wert);
//Some String operations
result := PChar(wert1);
end;
exports
UTF_UPPER name 'UTF_UPPER';
begin
end.
I registered it in Firebird by using:
DECLARE EXTERNAL FUNCTION WIDEUPPER
CSTRING(32000)
RETURNS CSTRING(32000) FREE_IT
ENTRY_POINT 'UTF_UPPER' MODULE_NAME 'udf_upper';
Everything works ok, but when I try to use the function in a
SQL-Statement, it just says:
ISC ERROR CODE:335544343
ISC ERROR MESSAGE:
invalid request BLR at offset 63
function WIDEUPPER is not defined
module name or entrypoint could not be found
I absolutely don't know why...
Can somebody please help me?
Thank you very much
Klaus
I've tried to write with Freepascal a UDF for Firebird.
library udf_upper;
{$mode DELPHI}{$H+}
{$PACKRECORDS C}
uses
Classes
{ you can add units after this };
function UTF_UPPER(wert : PChar) : PChar; cdecl; export;
begin
wert1 := String(wert);
//Some String operations
result := PChar(wert1);
end;
exports
UTF_UPPER name 'UTF_UPPER';
begin
end.
I registered it in Firebird by using:
DECLARE EXTERNAL FUNCTION WIDEUPPER
CSTRING(32000)
RETURNS CSTRING(32000) FREE_IT
ENTRY_POINT 'UTF_UPPER' MODULE_NAME 'udf_upper';
Everything works ok, but when I try to use the function in a
SQL-Statement, it just says:
ISC ERROR CODE:335544343
ISC ERROR MESSAGE:
invalid request BLR at offset 63
function WIDEUPPER is not defined
module name or entrypoint could not be found
I absolutely don't know why...
Can somebody please help me?
Thank you very much
Klaus