[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