[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