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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top