[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