Closed timanagement closed 1 year ago
Desde já quero parabenizar todos os envolvidos.
Obrigado
Existe algo para utilização de Firebird EventAlert no RUST com a rsfbclient ?
Ainda não, mas posso implementar. Tens um caso de uso ou algum fonte/biblioteca de outra linguagem para servir de exemplo?
Caro Fernando, criei um projeto console com .Net6 onde pode ser verificado a aplicação do FbRemoteEvent que pertence ao package FirebirdSql.Data.FirebirdClient
Juntei ao projeto demo a base de dados que criei para este exemplo.
Depois vou subir um projeto de conexão com RUST usando a tua crates e deixar público para ajudar quem desejar aprender RUST e conectar ao Firebird.
Bacana. Vou verificar o material e estudar como trazer esse recurso para a crate.
Bacana. Vou verificar o material e estudar como trazer esse recurso para a crate.
Será muito bem vindo, pois permitirá, por exemplo, criar uma aplicação como serviço que execute determinada rotina acionada por um evento...
Se precisar de algo a mais, por favor não deixe de comunicar.
Essa API de eventos do Firebird é bem desafiadora hehe. Até o momento fiquei levantando o material sobre o assunto e tudo o que precisarei implementar.
Você possui experiência com essa API a nível mais baixo? Pelo que andei vendo, preciso registrar o evento no fb e manter um loop esperando pela operação op_event.
Na verdade, pelo pouco que analisei, o componente que trata eventos estabelece uma conexão direta com o banco(penso que teria que ter uma crate que lide diretamente com a conexão com o banco) e então quando registramos um evento, o SGDB retorna a string registrada para todos que se registraram.
Segundo o manual, os eventos retornam string.
Infelizmente não possuo experiências, além do uso, conforme descrito no manual o qual deixarei o link abaixo:
https://www.firebirdsql.org/file/documentation/papers_presentations/Power_Firebird_events.pdf
Outro link que possa te interessar para estudo, é sobre o node e de como eles usam o "fb-native.cpp" para lidar com eventos. Em especial, a partir da linha 226:
Ou diretamente olhando em:
https://github.com/FirebirdSQL/firebird/blob/master/examples/interfaces/08.events.cpp
Sim. Consegui um material bom nos exemplos do firebird:
https://github.com/FirebirdSQL/firebird/blob/master/examples/api/api16.c#L131
Ainda não tive uma grade evolução, mas aos poucos vai avançando.
Travei no isc_event_block
. Vou deixar essa issue de lado por um tempo. Mais tarde faço push do que estava sendo desenvolvido. Futuramente volto a atacar esse problema.
Caro Fernando, vou buscando mais informações e, caso encontre, vou reportando aqui. Desde já agradeço seus esforços.
Como é o caso deste material da embarcadero:
https://docwiki.embarcadero.com/InterBase/2020/en/Creating_EPBs_with_isc_event_block(_)
Travei no
isc_event_block
. Vou deixar essa issue de lado por um tempo. Mais tarde faço push do que estava sendo desenvolvido. Futuramente volto a atacar esse problema.
Tem um repositório que implementou para uso com node: node-firebird-libfbclient
. Acredito que mostra o ponto onde vc disse ter travado. Veja os dois arquivos abaixo:
fb-bindings-eventblock.h
fb-bindings-eventblock.cc
https://github.com/xdenser/node-firebird-libfbclient/tree/master/src
Espero que seja útil.
Abraços
Opa.
Aparentemente o isc_event_block
não foi usado, vou tentar entender como o projeto usa o isc_que_events
sem ele.
Obrigado pelo material.
Consegui passar o do isc_event_block
. Resolvi recorrer ao stackoverflow e deu boa. Logo subo novos commits.
@timanagement , creio que deu certo. Você poderia testar a branch firebird-events
e verificar se já lhe atende?
Seus esforços resultaram em sucesso.
Vou tentar descrever:
Na 1ª imagem está a configuração no seu exemplo para acessar o BD.
Na 2ª imagem está a Trigger criada para escutar o evento "SINC_USUARIO".
Na 3ª imagem está o que será executado, todas as vezes que o evento for escutado.
Na 4ª imagem está o resultado obtido.
imagem 1
imagem 2
imagem 3
imagem 4
Não tenho palavras para te agradecer...
Hehe, que bom que você curtiu.
Essa semana resolvo o que foi apontado na PR e solto uma nova versão da crate. Obrigado pela paciência e consideração.
Crate atualizada. Agora para usar o novo recurso basta usar a nova versão 0.23.0
Crate atualizada. Agora para usar o novo recurso basta usar a nova versão
0.23.0
Perfeito. Obrigado mais uma vez.
Desde já quero parabenizar todos os envolvidos. Existe algo para utilização de Firebird EventAlert no RUST com a rsfbclient ?