[firebase-br] UDF send_packed/send

Carlos H. Cantu listas em warmboot.com.br
Terça Setembro 21 14:18:41 -03 2021


Providers = Remote,Engine13,Engine12,Loopback

Só é necessário adicionar Engine12 nessa linha se você tiver copiado a
engine12.dll na pasta plugins do FB 4 e deseja acessar bases de dados
Firebird 3 através do Firebird 4.

Pelo que entendi, vc tem dois Firebirds instalados (3 e 4), portanto,
não seria necessário adicionar Engine12 na referida linha.

Se vc realmente acredita que o problema é no Firebird 4, abra um
ticket no tracker do Firebird e mencione os passos necessários para
reproduzir o problema.

[]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> Ok, o meu código, como eu suspeitava, estava correto e de acordo com todas
CM> as diretivas apresentadas no link que você me enviou.
CM> O problema é mesmo com o Firebird 4.

CM> No meu ficheiro firebird.conf eu tinha essa linha para me poder conetar a
CM> bases de dados do Firebird 3, pois tenho as duas versões instaladas, muito
CM> embora neste momento até tenha o serviço do Firebird 3 parado:
CM> Providers = Remote,Engine13,Engine12,Loopback

CM> Depois de comentar essa linha e reiniciar o Firebird 4, tudo corre
CM> maravilha.
CM> Algo a ver no Firebird 4. Talvez nunca ninguém se tenha deparado com esta
CM> situação.

CM> Obrigado.

CM> -----Mensagem original-----
CM> De: lista <lista-bounces em firebase.com.br> Em Nome De Carlos H. Cantu via
CM> lista
CM> Enviada: 20 de setembro de 2021 17:58
CM> Para: 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> Faz total sentido, visto que com dois usuários vc teria a UDF rodando em
CM> múltiplas threads. Veja o artigo:

CM> https://www.firebase.com.br/artigo.php?id=3208

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>> 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


CM> ______________________________________________
CM> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
CM> 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




Mais detalhes sobre a lista de discussão lista