[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