亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊會員 設為首頁 | 收藏本站
當前位置 : 首頁>軟件學院>數(shù)據(jù)庫>SQL>正文
 
SQL Server2005查詢通知

http://m.yibo1263.com 2008/5/4 19:19:12  來源:yesky  編輯:阿拉格調
 

在整個的.NET 2.0的設計過程中,SqlDependency底層架構從一種推模式(來自SQL Server)改變?yōu)橐环N拉模式(來自.NET)。這樣做的原因是為了解決第一次設計時所導致的一些安全問題。微軟的Sushil Chordia在MSDN上發(fā)表了一篇有關于這種改進的文章,該文詳細描述了這一改進的內在機理。

六. 你的第一個通知

下面,讓我們開始使用SqlDependency來分析一下所有上面這些是如何協(xié)同工作的。

首先,我們創(chuàng)建一個類NotificationTest來存取你的數(shù)據(jù)。在這個類中,還要創(chuàng)建一個典型的函數(shù)以便從Pubs數(shù)據(jù)庫的Authors表中查詢一些數(shù)據(jù)并返回一個SqlDataReader。

Imports System.Data.SqlClient

Public Class NotificationTest

Public Function DepTest() As SqlDataReader

Dim conn As New SqlConnection(connstring)

conn.Open()

Dim cmd As New SqlCommand(

"SELECT * FROM authors(", conn)")

Dim rdr As SqlDataReader

rdr = cmd.ExecuteReader()

Return rdr

End Function

End Class

現(xiàn)在,讓我們修改代碼來加入這種依賴性。首先,聲明一個名為SqlDependency的對象。為了使之用于該類中的其它函數(shù)中,我把它定義為一個類變量。

然后,你需要改變這個查詢。查詢通知要求你顯式地列舉在你的查詢中的列,以及總是使用一種“兩部分”的表名。注意一下在修改后的代碼示例中的新的查詢文本。

然后,實例化新的SqlDependency并且把它依附到命令中。

就是這些。當執(zhí)行命令時,依賴性隨著它直到數(shù)據(jù)庫。在它處理查詢的同時,SQL Server能夠看到這一依賴性并且把它發(fā)送到Service Broker以注冊它。

Imports System.Data.SqlClient

Public Class NotificationTest

Dim dep As SqlDependency

Public Function DepTest() As SqlDataReader

Dim conn As New SqlConnection(connstring)

conn.Open()

Dim cmd As New SqlCommand( _

"SELECT au_id, au_lname,au_fname " & _

"FROM dbo.authors", conn)

dep = New SqlDependency(cmd)

Dim rdr As SqlDataReader

rdr = cmd.ExecuteReader()

Return rdr

End Function

End Class

現(xiàn)在,你已經注冊了依賴性,但是當通知返回到應用程序時你還根本沒有捕獲它。不過,SqlDependency類提供了兩種方式來了解一個通知。一種方式是通過OnChange事件,你可以通過創(chuàng)建一個代理來捕獲它;另一種方式是通過屬性HasChanges,你可以在你的應用程序邏輯中對之進行測試。在下列代碼中,我在OnDepChange事件中添加了代碼以便在后面的某個時候測試通知。

Imports System.Data.SqlClient

Public Class NotificationTest

Dim dep As SqlDependency

Public Function DepTest() As SqlDataReader

Dim conn As New SqlConnection(connstring)

conn.Open()

Dim cmd As New SqlCommand( _

"SELECT au_id,au_lname,au_fname FROM " + _

"dbo.authors", conn)

dep = New SqlDependency(cmd)

AddHandler dep.OnChange, AddressOf OnDepChange

Dim rdr As SqlDataReader

rdr = cmd.ExecuteReader()

Return rdr

End Function

'處理器方法

Public Sub OnDepChange(ByVal sender As Object, _

ByVal e As SqlNotificationEventArgs)

Dim DepInfo As String = e.Info.ToString

'做一些事情以響應通知

End Sub

Public ReadOnly Property HasChanges() As Boolean

Get

Return dep.HasChanges

End Get

End Property

End Class

現(xiàn)在,我們來看一下其工作原理。首先,把一個斷點放到OnDepChange事件的End Sub代碼行。然后,從你喜歡的網頁、表單程序或控制臺程序中調用DepTest函數(shù)來進行測試。在返回SqlDataReader后,在Visual Studio 2005的Server Explorer或在SQL Server Management Studio中打開Authors表并且編輯某一個字段內容。例如,一旦鎖定這一改變,那么,當你把光標移動到表中的一個新行時,斷點應該被激活。

本新聞共4頁,當前在第3頁  1  2  3  4  

收藏】【打印】【進入論壇
  相關文章:

·SQL Server2005數(shù)據(jù)加密技術應用研究

 
 
 
最新文章

搶先蘋果,消息稱英特爾芯片采用臺積電
三星揭曉業(yè)內首款單條 512GB DDR5 內存
vivo 高端新機爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息稱三星 Galaxy Tab S8 系列平板將放
機械革命推出 F6 輕薄本:16 英寸全面屏
英特爾 12 代 Alder Lake CPU 600 系列
雷軍:向小米手機 1 首批用戶每人贈送價
小米李明談用戶被踢出 MIUI 測試版:大

推薦文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感寫真
宮如敏不雅照瘋傳 看張馨予韓一菲獸獸誰
不懼孔子搶位 阿凡達游戲影音配置推薦
2015第十七屆“東北安博會”火爆招商
第十六屆東北國際公共安全防范產品博覽
2016年第五屆中國國際商業(yè)信息化博覽會
2016年第五屆中國國際POS機及相關設備展
互聯(lián)網電視熟了嗎 2013最火電視深解析
桑達獲邀出席2015中國(廣州)國際POS機
寶獲利報名參加“2015年度中國POS機行業(yè)
八卦圖解 More>>
叛逆嫩模性感寫真 宮如敏不雅照瘋傳 看張馨予韓一菲
周偉童魔鬼身材日本性感寫真圖  聯(lián)想V360筆記本模特寫真