我想將SQL Server表用作動作隊列。因此,無論何時表格非空,我都想向我的VDF應用程序發送某種通知,以避免不斷輪詢數據庫。 VDF依賴於使用stdcall,Win 32 API的標準調用約定或COM/ActiveX。另一個可以爲我工作的解決方案是在表格非空時簡單地運行一個exe文件。當表非空時接收來自SQL Server的自動通知
在這裏可以使用SQL Server中是否有任何事件?你將如何引導VDF使用這樣一個事件(如上所述)?
我想將SQL Server表用作動作隊列。因此,無論何時表格非空,我都想向我的VDF應用程序發送某種通知,以避免不斷輪詢數據庫。 VDF依賴於使用stdcall,Win 32 API的標準調用約定或COM/ActiveX。另一個可以爲我工作的解決方案是在表格非空時簡單地運行一個exe文件。當表非空時接收來自SQL Server的自動通知
在這裏可以使用SQL Server中是否有任何事件?你將如何引導VDF使用這樣一個事件(如上所述)?
你可以使用一個ON INSERT觸發器,可能是該行發送權MSMQ,您的應用程序偵聽事件的新消息進來。
這裏是一個example of how to feed MSMQ using SQL Server,這裏a short one on how to listen for events。
還有SQL Server Event Provider,它基本上只爲您進行輪詢。
你將如何去引導VDF使用這樣的事件。
您如何引導VDF取決於您是否想要在VDF應用程序中發生某些可見的事情,或者您是否希望以VDF觸發過程。
如果是後者,我建議你使用Webapp來提供這個功能。 VDF(大約10個版本)內置了Web開發,並且提供SOAP接口來執行您想要的任何操作都很簡單。
{ Published = True }
{ Description = "Test the service is alive - returns 'Hello World'" }
Function HelloWorld Returns String
Function_Return "Hello World"
End_Function
如果是前者,那麼不用擔心使用定時器對象來每隔幾秒鐘輪詢數據庫。你會發現代碼更「數據傳輸」,只有可忽略的性能影響。
然而,有一個開源的VDF庫MSMQ,並且可以在這裏找到..
http://www.vdf-guidance.com/ContribPage.asp?Page=PKGGENMESSAGING&ContribRecId=106
最後 - 數據訪問新聞組是去視覺Dataflex支持的最佳場所。使用http://sture.dk/wasp搜索歷史新組,然後轉到news.dataaccess.com(使用您選擇的NNTP客戶端)發佈並回答問題。
嗨,Seanyboy!很高興從VDF'er老友那裏獲得輸入:) – 2008-12-23 15:39:31
優秀的答案!我應該可以使用它。 – 2008-12-22 12:33:01