[firebase-br] Nem o Google sabe: UDF com freepascal

Paulo paulo em manfra.com.br
Qua Ago 20 11:37:31 -03 2008


Obrigado a todos da lista pela ajuda! Descobri o que acontece e talvez 
este seja o problema de todos aqueles infelizes sem resposta google 
afora! :)

Fiz um programa de teste que carrega a minha udf e chama a função 
tira_acento. O que aconteceu? Ao executar o programa de teste, ocorreu 
um erro por não encontrar libib_util.so! Coloquei ela no /usr/lib e 
beleza! Revolvido o problema! Pena que o Firebird é não tímido sobre 
seus problemas, né...

E sim, apesar de declarar o MODULE_NAME como udfs, a biblioteca precisa 
ser libudfs.so. Só não me pergunte porque a ib_udf.so não precisa do lib!

===================================
Resumindo o problema (se alguém puder traduzir pro inglês esta parte, 
pra ficar como referência...):

Tinha uma udf feita em Delphi rodando no Interbase 6 no Windows. Portei 
ela para o freepascal. Com ajuda da lista, troquei o stdcall por cdecl. 
A compilação foi ok. Ao tentar usar no Firebird 1.5.3, ele retorna o erro:

Invalid token.
Invalid request BLR at offset 70.
Function SEM_ACENTO is not defined.
Module name or entrypoint could not be found.

O qual acontecia porque a minha udf não estava encontrando a 
libib_utils.so, necessária para udfs feitas em pascal. Coloquei a 
libib_utils.so em /usr/lib e tudo funcionou.
===================================

Obrigado à todos da lista pela atenção.




Paulo escreveu em 19/08/2008 17:38:
> Estou tentando migrar um Interbase 6.0 rodando em Windows 2000 para um 
> Firebird 1.5.3 no Debian (mais pra frente vamos para o 2.x.x). Procurei 
> na internet sobre a compilação de udfs com o freepascal e só o que 
> encontrei é: não funciona! A udf compila direitinho, mas ao ser chamada, 
> o firebird retorna o seguinte erro:
> Unsuccessful execution caused by system error that does not preclude 
> successful execution of subsequent statements.
> Subsystem name.
>
> Se eu bagunçar o nome da função ou o noma da so, o erro é de entry point 
> ou module name não encontrado. Normal. O problema é quando ele acha!
>
> Bom, algum de vocês sabe de alguma forma de compilar udfs com o freepascal?
>
>
>
> ______________________________________________
> 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
>   





Mais detalhes sobre a lista de discussão lista