[firebase-br] Fwd: Re: Fwd: Criando uma UDF no Firebird 2.1

Eliseu Corrona eliseucorrona em jbsoft.com.br
Ter Out 27 10:47:49 -03 2009


Olá Juliano, obrigado pela resposta brother.
Nos testes que estou fazendo a DLL gerada já está dentro da pasta de UDF 
no diretório de instalação do firebird. Tentei colocar na pasta bin 
também, no system32 também... o problema persiste.

Você tem alguma configuração diferente no Firebird.conf? Talvez seja 
algo na configuração do firebird.

-------- Mensagem original --------
Assunto: 	Re: [firebase-br] Fwd: Criando uma UDF no Firebird 2.1
Data: 	Tue, 27 Oct 2009 08:21:32 -0200
De: 	Juliano Ribeiro <julianopauloribeiro em gmail.com>
Responder a: 	FireBase <lista em firebase.com.br>
Para: 	FireBase <lista em firebase.com.br>



Olá Eliseu,

Eu tive problema semelhante aqui e o problema era a pasta na qual eu
colocava a DLL. Experimente colocar na pasta UDF, dentro da instalação
do firebird. Aqui funcionou.

Um abraço

Juliano P. Ribeiro
www.w3host.com.br



2009/10/26 Eliseu Corrona<eliseucorrona em jbsoft.com.br>:
>    Olá amigos, tudo bem?
>  Preciso criar uma UDF no Firebird 2.1, porém, apesar de seguir todos os
>  passos de alguns exemplos que encontrei na internet, consegui criá-la porém
>  não executá-la.
>
>  O exemplo que criei é simples. Criei uma Dll no delphi para retornar o
>  módulo de um número e postei todos os passos abaixo.
>  É gerado um erro na execução e não teve jeito de fazer funcionar. Li alguns
>  relatos no fórum sobre o mesmo erro. O meu sistema operacional é o Windows
>  XP 32bits e o Firebird é a versão 2.1.218118.
>
>  Grato se puderem ajudar.
>
>
>
>  *Unit de funções da DLL:*
>
>  unit UdfFunctions;
>
>  interface
>
>  function Modulo(var i, j: Integer): Integer; cdecl; export;
>
>  implementation
>
>  function Modulo(var i, j: Integer): Integer;
>  begin
>    if (j = 0) then
>      result := -1 // just check the boundary condition, and
>      // return a reasonably uninteresting answer.
>    else
>      result := i mod j;
>  end;
>
>  end.
>
>
>  *Declaração da DLL:*
>  library DllUtils;
>
>  { Important note about DLL memory management: ShareMem must be the
>    first unit in your library's USES clause AND your project's (select
>    Project-View Source) USES clause if your DLL exports any procedures or
>    functions that pass strings as parameters or function results. This
>    applies to all strings passed to and from your DLL--even those that
>    are nested in records and classes. ShareMem is the interface unit to
>    the BORLNDMM.DLL shared memory manager, which must be deployed along
>    with your DLL. To avoid using BORLNDMM.DLL, pass string information
>    using PChar or ShortString parameters. }
>
>  uses
>    SysUtils,
>    Classes,
>    UdfFunctions in 'UdfFunctions.pas';
>
>
>
>  {$R *.res}
>
>
>  exports
>    Modulo;
>
>  begin
>
>  end.
>
>
>  *Código para criar a UDF no firebird:*
>  declare external function f_Modulo integer, integer
>  returns
>  integer free_it
>  entry_point 'Modulo' module_name 'DllUtils';
>
>
>  *SQL de execução:*
>  select f_Modulo(3, 2) from rdb$database;
>
>  *Erro gerado:*
>  Invalid token.
>  invalid request BLR at offset 60.
>  function F_MODULO is not defined.
>  module name or entrypoint could not be found.
>
>
>  ______________________________________________
>  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
>  Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>

______________________________________________
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
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

__________ Informação do ESET NOD32 Antivirus, versão da vacina 4537 (20091023) __________

A mensagem foi verificada pelo  ESET NOD32 Antivirus.

http://www.eset.com









Mais detalhes sobre a lista de discussão lista