2011-10-20 15 views
5

delphi 7 e mssql 2008 sono i requisiti che non posso cambiare per un nuovo progetto Sto iniziando a lavorare e se possibile mi piacerebbe ricevere notifiche/eventi se i dati cambiano sul server quindi non devo effettuare il polling quindi la domanda è:Come utilizzare SQLServer Service Broker/SQLNotifications con Delphi7?

è possibile utilizzare il broker SQLService con D7 o c'è qualcosa di simile (stava leggendo/pensando a crosstalk e ado.net ma il supporto parte solo da D2007)?

Update: Giusto per essere assolutamente chiaro, voglio essere in grado di ottenere un evento se i dati cambia in alcune tabelle e non se un modifiche tabella/di database (ad esempio, inserire/aggiornamenti sulle tabelle specifiche.).

risposta

4

Sì, è possibile utilizzare delphi per accedere alle notifiche e agli eventi esposti da MSSQL Service Broker. Per fare ciò è possibile utilizzare WMI Provider for Server Events che espone un insieme molto ricco di eventi e classi WMi. Se sei nuovo al WMI, ti consiglio di leggere questi articoli Accesing the WMI from Object Pascal Code e Delphi and WMI Events, inoltre puoi utilizzare lo WMI Delphi Code Creator per creare uno snippet Delphi per accedere agli eventi dello MSSQL Service Broker.

+0

thx, cercherà domani, quando sono tornato in ufficio – pastacool

+0

è un bel po 'per digerire – pastacool

+0

hi, dopo qualche lettura per quanto ho potuto, e da quanto ho capito ora, sembra a me che con WMI Provider non è possibile ottenere anche se i dati cambiano su una tabella specifica (ad esempio, aggiornamento tab1 imposta mod_date = getdate() dove id = 1) ma solo se le tabelle cambiano (ad esempio, altera tab1 aggiungi newcol int). – pastacool