[firebase-br] Erro com UDF de inserção

Gladiston Santana gladiston em vidy.com.br
Qua Set 11 16:36:47 -03 2013


Só para lembrar que se voce planeja inserir dados noutra base tambem
firebird voce pode fazer isso do conforto dos comandos do FB:

  EXECUTE STATEMENT 'insert into()value();'
   ON EXTERNAL '192.168.1.253:c:\xxx\xxx\audit.fdb'
   AS USER 'SYSDBA'
   PASSWORD 'masterkey'
   ROLE 'rdb$admin';


2013/9/11 <jean em i7tecnologia.com>

> 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
>
> ______________________________**________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>



Mais detalhes sobre a lista de discussão lista