[firebase-br] UDF send_packed/send
Carlos Matos
matos em comograma.pt
Terça Setembro 21 12:27:37 -03 2021
Ok, o meu código, como eu suspeitava, estava correto e de acordo com todas
as diretivas apresentadas no link que você me enviou.
O problema é mesmo com o Firebird 4.
No meu ficheiro firebird.conf eu tinha essa linha para me poder conetar a
bases de dados do Firebird 3, pois tenho as duas versões instaladas, muito
embora neste momento até tenha o serviço do Firebird 3 parado:
Providers = Remote,Engine13,Engine12,Loopback
Depois de comentar essa linha e reiniciar o Firebird 4, tudo corre
maravilha.
Algo a ver no Firebird 4. Talvez nunca ninguém se tenha deparado com esta
situação.
Obrigado.
-----Mensagem original-----
De: lista <lista-bounces em firebase.com.br> Em Nome De Carlos H. Cantu via
lista
Enviada: 20 de setembro de 2021 17:58
Para: lista em firebase.com.br
Cc: Carlos H. Cantu <listas em warmboot.com.br>
Assunto: Re: [firebase-br] UDF send_packed/send
Faz total sentido, visto que com dois usuários vc teria a UDF rodando em
múltiplas threads. Veja o artigo:
https://www.firebase.com.br/artigo.php?id=3208
[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
CM> Estive de volta do código da minha UDF e continuo a achar que algo
CM> estranho se passa com o Firebird 4.
CM> O erro que mencionei apenas ocorre se outro user estiver conectado à
CM> mesma base de dados.
CM> Se apenas o user que está a executar a UDF estiver conectado no
CM> banco de dados, tudo está ok, mas se me conetar em simultâneo com
CM> outro user, o erro acontece.
CM> Alguma dica??!!!!!!!!
CM> Pode me apontar artigos sobre UDFs, especialmente UDFs que retornam
CM> strings, para perceber o método de alocação de memória e perceber se
CM> tenho algo que não esteja correto?
CM> Agradecido.
CM> -----Mensagem original-----
CM> De: lista <lista-bounces em firebase.com.br> Em Nome De Carlos H. Cantu
CM> via lista
CM> Enviada: 17 de setembro de 2021 18:43
CM> Para: 'FireBase' <lista em firebase.com.br>
CM> Cc: Carlos H. Cantu <listas em warmboot.com.br>
CM> Assunto: Re: [firebase-br] UDF send_packed/send
CM> Aparentemente sua UDF não está alocando memória da forma correta.
CM> UDFs que trabalham com strings tem que se preocupar muito com isso.
CM> O fato de vc dizer que funciona em outras versões do Firebird pode
CM> ser pura sorte, ou por exemplo, pode funcionar com o Classic mas não
CM> com o SuperServer, etc.
CM> Sugiro que revise que consulte os artigos sobre UDFs e revise o
CM> código dela, corrigindo qualquer problema encontrado.
CM> Se tiver certeza que a UDF está correta, sugiro que abra um ticket
CM> no tracker do Firebird e anexe uma aplicação demonstrando o problema.
CM> []s
CM> Carlos H. Cantu
CM> eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
CM> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
CM>> Ok, no Firebird.log, o que aparece é isto:
CM>> The user defined function: F_LRTRIM
CM>> referencing entrypoint: lrTrim
CM>> in module: UDFsComograma
CM>> caused the fatal exception: Access violation.
CM>> The code attempted to access a virtual
CM>> address without privilege to do so.
CM>> This exception will cause the Firebird server
CM>> to terminate abnormally.
CM>> Mas não percebo porquê. Já tenho esta UDF há 15 anos e nunca tive
CM>> qualquer problema com ela desde o Firebird 2.1 até ao Firebird 4.
CM>> Trabalha nos dias de hoje ainda no Interbase 2020.
CM>> Não percebo porquê.
CM>> Alguma ideia?
CM>> -----Mensagem original-----
CM>> De: lista <lista-bounces em firebase.com.br> Em Nome De Carlos H.
CM>> Cantu via lista
CM>> Enviada: 17 de setembro de 2021 12:41
CM>> Para: FireBase <lista em firebase.com.br>
CM>> Cc: Carlos H. Cantu <listas em warmboot.com.br>
CM>> Assunto: Re: [firebase-br] UDF send_packed/send
CM>> Me parece ser problema na codificação da UDF.
CM>> De qualquer forma, no firebird.log deve ter mais informações sobre
CM>> o problema ocorrido.
CM>> []s
CM>> Carlos H. Cantu
CM>> eBook Guia de Migração para o FB 4 -
CM>> www.firebase.com.br/guiafb4.php www.FireBase.com.br -
CM>> www.firebirdnews.org - blog.firebase.com.br
CMvl>>> Olá,
CMvl>>> No Firebird 4, quando executo um select com uso a uma UDF, estou
CMvl>>> a obter o seguinte erro:
CMvl>>> Error writing data to the connection.
CMvl>>> Send_packet/send.
CMvl>>> O comando é o seguinte:
CMvl>>> SELECT F_LRTRIM(DESIG) FROM ARTIGOS
CMvl>>> Em que F_LRTRIM é a minha UDF.
CMvl>>> No Firebird 3 funciona 100%.
CMvl>>> Porquê isto acontecer no Firebird 4? Sei que as UDF não são
CMvl>>> aconselhadas no Firebird 4 mas para já e como tenho algumas,
CMvl>>> ainda não
CM>> posso removê-las.
CMvl>>> Alguém pode ajudar?
CMvl>>> Carlos Matos
CMvl>>> Sócio-Gerente
CMvl>>> Comograma – Programação Informática, Lda.
CMvl>>> matos em comograma.pt
CMvl>>> Tel: +351 239 802 340/8
CMvl>>> Fax: +351 239 802 349
CMvl>>> www.comograma.pt
CMvl>>>
CMvl>>> ______________________________________________
CMvl>>> FireBase-BR (www.firebase.com.br) - Hospedado em
CMvl>>> www.locador.com.br Para saber como gerenciar/excluir seu
CMvl>>> cadastro na
CM>> lista, use:
CMvl>>> http://www.firebase.com.br/fb/artigo.php?id=1107
CMvl>>> Para consultar mensagens antigas:
CMvl>>> http://www.firebase.com.br/pesquisa_lista.html
CM>> ______________________________________________
CM>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
CM>> Para saber como gerenciar/excluir seu cadastro na lista, use:
CM>> http://www.firebase.com.br/fb/artigo.php?id=1107
CM>> Para consultar mensagens antigas:
CM>> http://www.firebase.com.br/pesquisa_lista.html
CM> ______________________________________________
CM> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
CM> Para saber como gerenciar/excluir seu cadastro na lista, use:
CM> http://www.firebase.com.br/fb/artigo.php?id=1107
CM> Para consultar mensagens antigas:
CM> http://www.firebase.com.br/pesquisa_lista.html
______________________________________________
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://www.firebase.com.br/pesquisa_lista.html
Mais detalhes sobre a lista de discussão lista