Retornando dados do SQLDDependência
-
16-09-2019 - |
Pergunta
Estou tentando escrever um aplicativo vb.net que usaSqlDependency
. A dependência será acionada quando os dados forem adicionados ao banco de dados. Gostaria de saber se é possível que a dependência retorne os dados/consulta que o desencadearam.
Atualmente eu tenho que ter o onchange
O evento aciona uma instrução SELECT para atualizar os dados que eu armazenei em cache. É possível apenas ter a dependência retornar os novos dados que o desencadearam
ou seja, o seguinte é adicionado a uma tabela, a tabela possui 2 campos (id, dados)
id: 1
data: hello
Quando isso for adicionado, o evento de dependência será demitido e
id: 1
data: hello
será retornado
Solução
Ver http://rusanu.com/2006/06/17/the-mysterious-notification/ Para uma explicação, como o SQLDEPENDENCE funciona sob as capas. Não é possível obter as alterações de dados junto com a notificação. Embora existam tecnologias em torno do rastreamento de alterações e captura de dados, mas por vários motivos, eles não são apropados para as mudanças de monitoramento de aplicativos. Eles são destinados à sincronização de dados (Sync Framework) e teriam que ser puxados para mudança, o que, na verdade, mata qualquer tentativa de usá -los para armazenamento em cache.
A única tecnologia de mudança de notificação proativa é a notificação de consulta, veja mais detalhes no meu link.
Outras dicas
Não. Eu não acho que isso seja possível com o SQLDEPENDENCE. Você pode usar gatilhos ou usar o rastreamento de alterações no SQL 2008.