[firebase-br] Erro com UDF de inserção
jean em i7tecnologia.com
jean em i7tecnologia.com
Qua Set 11 11:02:29 -03 2013
Bom dia,
Estou precisando criar uma UDF que insira informações em um outro banco
externo, porém quando tento utilizar a função na minha procedure tenho o
seguinte erro:
“Invalid token. invalid request BLR at offset 55. function QRYEXEC is not
defined. module name or entrypoint could not be found.”
Estou declarando a UDF da seguinte forma:
DECLARE EXTERNAL FUNCTION QRYEXEC
CSTRING(9999),
CSTRING(9999)
RETURNS INTEGER FREE_IT
ENTRY_POINT 'QRYEXEC' MODULE_NAME 'UDF_DLL.dll';
E abaixo o código da DLL:
uses
DBXFirebird,
Dialogs,
SysUtils,
SqlExpr,
Classes;
{$R *.res}
function qryExec (strQry, strCon:PChar):integer; cdecl; export;
var
vSqlCon: TSQLConnection;
vQry: TSQLDataSet;
begin
try
Result:=1;
vSqlCon:= TSQLConnection.Create(nil);
vSqlCon.ConnectionName := 'FBCONNECTION';
vSqlCon.DriverName := 'FIREBIRD';
vSqlCon.LibraryName := 'dbxfb.dll';
vSqlCon.VendorLib := 'fbclient.dll';
vSqlCon.GetDriverFunc := 'getSQLDriverINTERBASE';
vSqlCon.Params.Add('User_Name=SYSDBA');
vSqlCon.Params.Add('Password=password');
vSqlCon.Params.Add('Database='+strCon);
vSqlCon.LoginPrompt := False;
try
vSqlCon.Open;
vQry:= TSQLDataSet.Create(nil);
vQry.SQLConnection:= vSqlCon;
vQry.CommandText:= strQry;
vQry.ExecSQL(True);
except
Result:= 0;
end;
finally
FreeAndNil(vQry);
FreeAndNil(vSqlCon);
end;
end;
exports qryExec;
begin
end.
Só lembrando que a DLL funciona normalmente na aplicação que criei de teste.
Desde já muito obrigado!
Jean Wetter
Mais detalhes sobre a lista de discussão lista