2010-01-28 63 views
3

是否可以通過Microsoft SQL Server對C++應用程序進行調用/通知?你可以從MS SQL Server調用C++應用程序嗎?

爲了更加深入地理解我想要達到的目標:我們的數據庫正在被更新爲新的信息;每當收到一條新信息時,我們都會將其推送到C++應用程序,以使其儀表板反映用戶的最新數據。

我們知道我們可以通過讓C++應用程序輪詢數據庫來做到這一點,但我認爲這是低效的體系結構,並希望SQL將信息或通知推送到C++。

非常感謝這個領域的任何光線!

----- 1月28日下午3點40分----

確定周圍的一些閱讀上的Service Broker外部激活它似乎像使用正確的技術之後;但是它似乎是SQL Server 2008中引入的技術;不幸的是我們正在使用SQL Server 2005.是否還有其他可用於我們的暗示性技術或架構設計?

+1

如下表示,將xp_cmdshell的工作,但在社會安全和性能方面的原因皺眉。 (它會使交易更長,等等)如何通過消息隊列(MSMQ)傳達更改? – beach 2010-01-28 01:36:21

回答

3

您可能希望着手使用Service Broker並處理它排隊的事件。這裏是MSDN:http://msdn.microsoft.com/en-us/sqlserver/cc511479.aspx

+0

非常有趣〜我會看看這個! – n00b 2010-01-28 01:43:57

+0

只是更新了一個更有用的鏈接。 – 2010-01-28 01:45:56

+0

感謝Fatcat〜外部激活似乎是SQL Server 2008專有的,並且我們目前正在使用2005的抽獎運氣。 您有任何其他建議嗎? – n00b 2010-01-28 04:58:49

0

嘗試使用xp_cmdshell。這不是我輕易做的事情,我一定會確保你不讓任何東西通過sysadmin權限訪問SQL框。創建一個可以作爲系統管理員用戶執行的存儲過程,然後從那裏運行xp_cmdshell。儘管如此,您仍然需要啓用它...

+0

我們知道我們可以使用xp_cmdshell,但是我的老闆不想因爲各種原因走那條路。 – n00b 2010-01-28 01:38:48

+0

夠公平的。 CLR存儲過程也可能會這樣做。 – 2010-01-28 02:07:07

1

還有一種方法,您不需要應用程序來輪詢數據庫,您可以爲表格創建一個觸發器,只要發生了某些變化就會向您的應用程序發送消息。這將是更簡單(更安全)的方式

this

+0

我假設這條消息將使用服務代理? 謝謝領先!我會研究它! – n00b 2010-01-28 01:44:29

相關問題