文谷首页 | 业界传真 | 网络技术 | 服务器 | 数据库 | 存储技术 | 系统安全 | 无线技术 | Cisco | .Net | Windows | Linux | Unix | Java
电子商务 | 网站工程 | 网页设计 | 平面设计 | 多媒体 | 编程语言 | Oracle | MSSQL | Photoshop | ASP | PHP | 实用技巧 | 进程查询 | 文谷论坛
SQL Server
没有任何子栏目
您现在的位置: IT文谷 >> 数据库频道 >> SQL Server >> 文章正文
剖析SQL Server 2005查询通知之基础篇剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇
剖析SQL Server 2005查询通知之基础篇
剖析SQL Server 2005查询通知之基础篇剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇
剖析SQL Server 2005查询通知之基础篇剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇



  五. SqlDependency.Start和Stop

  SqlDependency和SqlCacheDependency都要求,在任何通知请求前先调用静态方法SqlDependency.Start()。这个方法负责创建一个SqlConnection以实现在数据改变时接收通知。注意,你仅需要在一个应用程序的生命周期的开始建立这些内容。例如,在一个ASP.NET应用程序中,global.asax文件的Application_Start事件处理器就是实现这一功能的好地方。

  注意,对包含在通知中的每一个连接都应该调用Start方法。因此,如果你在应用程序中存取多个数据库,那么你需要为每一个数据库调用Start。在下列示例中,有一个针对Pubs数据库的连接串pubsConn,它在这个应用程序的web.config文件中定义。

  为了切断这个连接,你可以使用SqlDependency.Stop(),这也是一个静态方法。


Sub Application_Start(ByVal sender as Object, _
ByVal e as EventArgs)
System.Data.SqlClient.SqlDependency.Start _
(System.Configuration.ConfigurationManager. _
Connectionstrings("pubsConn").ConnectionString)
End Sub
Sub Application_End(ByVal sender as Object,
ByVal e as EventArgs)
System.Data.SqlClient.SqlDependency.Stop _
(System.Configuration.ConfigurationManager. _
Connectionstrings("pubsConn").ConnectionString)
End Sub



  如果你在调用Start和Stop的同时观察SQL Server Profiler,那么你会看到许多有趣的信息。当调用Start时,应用程序运行一个查询以确保支持Service Broker,然后创建一个存储过程备以后用于清除在Service Broker基础结构中的SqlDependency队列和服务。最后,它运行一个SQL Server 2005 WaitFor命令,该命令负责查询在Notification Service部分的入口。这就是如果你使用ADO.NET的低级SqlNotificationRequest对象的话所有你需要显式完成的事情。

  在整个的.NET 2.0的设计过程中,SqlDependency底层架构从一种推模式(来自SQL Server)改变为一种拉模式(来自.NET)。这样做的原因是为了解决第一次设计时所导致的一些安全问题。微软的Sushil Chordia在MSDN上发表了一篇有关于这种改进的文章,该文详细描述了这一改进的内在机理。

  六. 你的第一个通知

  下面,让我们开始使用SqlDependency来分析一下所有上面这些是如何协同工作的。
首先,我们创建一个类NotificationTest来存取你的数据。在这个类中,还要创建一个典型的函数以便从Pubs数据库的Authors表中查询一些数据并返回一个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


 

上一页  [1] [2] [3] 下一页

剖析SQL Server 2005查询通知之基础篇剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇
  • 上一篇文章:

  • 下一篇文章:
  • 进入论坛讨论

    相关文章
    SQLServer2000分布式事务错误解决方法
    用TRY/CATCH解决SQL2005的死锁
    教你如何在SQL Server计算列和平均值
    在SQL Server中使用CLR调用.NET方法
    向外扩展SQL Server 实现更高扩展性
    SQL Server 查询分析器快捷键集合
    SQL Server数据在不同数据库中的应用
    SQL Server如何访问sybase数据库的表
    教你如何在SQL Server计算列和平均值
    动态创建MSSQL数据库表存储过程
    MS-SQL开发常用汇总和t-sql技巧集锦
    保护SQL服务器的安全-用户识别问题
    热门文章最新推荐

    版权与免责声明:
    ① 本网转载其他媒体稿件是为传播更多的信息,此类稿件不代表本网观点,版权归原作者所有,本网不承担此类稿件侵权行为的连带责任。
    ② 本站原创文章,转载时请注明出自文谷及作者姓名
    ③在本网BBS上发表言论者,文责自负。
    ④如您因版权等问题需要与本网联络,请在30日内联系 。
    剖析SQL Server 2005查询通知之基础篇剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇
    剖析SQL Server 2005查询通知之基础篇剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇2007-7-14 19:55:44剖析SQL Server 2005查询通知之基础篇

    全站热点
    最新推荐
    关于文谷 | 联系文谷 | 免责声明 | 文谷论坛
    Tel: 0577-65690019      E-mail: ichenjian@gmail.com    MSN:ichenjian@hotmail.com    QQ:2911194
    Copyright © 2004-2008 wengu.com 文谷 All Rights Reserved
    浙ICP备05000327号