Domanda

Come posso tracciare o ricevere notifiche ogni volta che un record viene inserito o aggiornato in un DB? Vorrei informare un'applicazione esterna delle modifiche in tempo quasi reale ogni volta che si verificano tali cambiamenti nel DB. Esistono modi indipendenti da DBMS e indipendenti dal linguaggio di programmazione dell'applicazione? In caso contrario, è possibile in particolare con MS Access e MS SQL Server? Sto cercando di evitare il polling continuo di DB ovviamente.

È stato utile?

Soluzione

Con SQL Server è possibile caricare una DLL all'interno di SQL Server stesso e richiamare i metodi da questo con stored procedure estese. La DLL potrebbe quindi notificare altre applicazioni, in genere tramite un socket TCP.

Altri suggerimenti

Penso che l'ultima versione di Microsoft SQL Server ti consenta di generare eventi nel tuo codice .NET in base alle condizioni e agli eventi del server. Non l'ho provato e non ho sentito parlare di alcun modo "indipendente da DBMS" di farlo (senza polling DB ogni X millisecondi).

Con MS-Access, tengo traccia delle modifiche ai record o delle aggiunte ai record con i campi nella tabella principale che memorizzano il nome utente e la data in cui il record viene creato o aggiornato.

È necessario utilizzare un'API di Windows per registrare il nome utente, in genere eseguito quando viene aperto il modulo centralino.

Sto scavando per trovare una via per tenere traccia di cambiamenti specifici. La mia base di dati viene utilizzata per la gestione dei progetti. Vorrei tenere traccia di ciò che è stato specificamente modificato, non solo chi e quando ciò che ho ora.

Penso che questo soddisfi i requisiti della domanda originale. In seguito posso aggiungere l'API di Windows che legge il nome dell'utente.

Private Sub Form_BeforeInsert (Annulla come intero)    Me! UserCreated = UCase (CurrentUser ())    Me! DateCreated = Now () End Sub

Private Sub Form_BeforeUpdate (Annulla come intero)    Me! DateModified = Now ()    Me! UserModified = UCase (CurrentUser ()) End Sub

- Mike

Per fare ciò con SQL Server, si utilizza il Servizio di notifica: scrivere una dll che si iscrive alle notifiche dal DB per gli aggiornamenti dei dati che è possibile elaborare in qualche modo.

Tuttavia, MS ha affermato che stanno rimuovendo questo da SQL Server 2008 .

Oracle ha qualcosa di simile (anche se tende a lasciare la propria tecnologia in atto), ma non ho visto nulla che sia neutrale rispetto al database.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top