`

剖析SQL Server 2005查询通知之基础篇(2)

 
阅读更多
四. 为使用查询通知作准备

  因为默认情况下SQL Server 2005处于高度安全的状态,所以你需要“打开”一些功能才能使用查询通知。首先,你要使用的每一个数据库都需要启动Service Broker功能。为此,你可以在T-SQL中使用如下命令实现:

USE mydatabase
ALTER DATABASE mydb SET ENABLE_BROKER

  另外,你需要授予一些SQL Server权限以允许非管理员帐户能够参与使用查询通知。

  五. 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上发表了一篇有关于这种改进的文章,该文详细描述了这一改进的内在机理。
分享到:
评论

相关推荐

    SQL+SERVER+2005+管理与开发技术大全.part1.rar

    第1篇为基础篇,介绍了SQL Server 2005的入门知识、如何安装SQL Server 2005、如何管理与配置SQL Server 2005服务器、如何配置SQL Server 2005网络、如何通过SQL Server Management Studio操作及管理SQL Server 2005...

    SQL+SERVER+2005+开发技术大全.part2.rar

    第1篇为基础篇,介绍了SQL Server 2005的入门知识、如何安装SQL Server 2005、如何管理与配置SQL Server 2005服务器、如何配置SQL Server 2005网络、如何通过SQL Server Management Studio操作及管理SQL Server 2005...

    SQL+SERVER+2005+开发技术大全.part1.rar

    第1篇为基础篇,介绍了SQL Server 2005的入门知识、如何安装SQL Server 2005、如何管理与配置SQL Server 2005服务器、如何配置SQL Server 2005网络、如何通过SQL Server Management Studio操作及管理SQL Server 2005...

    SQL Server 2008宝典.(电子工业.刘智勇.刘径周).part2

    第2部分为SQLServer 2008的准备篇,介绍了SQL Server 2008的功能、特性、各版本的比较、安装方法、SQL Server 2008的服务、客户端的工具等;第3部分为SQL Server 2008的基本操作篇,介绍如何管理与配置SQL Server ...

    SQL Server 2008宝典.(电子工业.刘智勇.刘径周).part1

    第2部分为SQLServer 2008的准备篇,介绍了SQL Server 2008的功能、特性、各版本的比较、安装方法、SQL Server 2008的服务、客户端的工具等;第3部分为SQL Server 2008的基本操作篇,介绍如何管理与配置SQL Server ...

    SQL Server 2008宝典.(电子工业.刘智勇.刘径周).part4

    第2部分为SQLServer 2008的准备篇,介绍了SQL Server 2008的功能、特性、各版本的比较、安装方法、SQL Server 2008的服务、客户端的工具等;第3部分为SQL Server 2008的基本操作篇,介绍如何管理与配置SQL Server ...

    数据库系统概论答案 SQL server 2005 教程

    第一篇 基础篇 第一章 绪论 1.1 数据库系统概述 1.2 数 据 模 型 1.3 数据库系统结构 1.4 数据库系统的组成 1.5 小结 习题 本章参考文献 第二章 关系数据库 2.1 关系数据结构及形式化定义 2.2 关 系 操 作 ...

    SQL Server 2008宝典.(电子工业.刘智勇.刘径周).part3

    第2部分为SQLServer 2008的准备篇,介绍了SQL Server 2008的功能、特性、各版本的比较、安装方法、SQL Server 2008的服务、客户端的工具等;第3部分为SQL Server 2008的基本操作篇,介绍如何管理与配置SQL Server ...

    SQL Server自动化运维系列:监控跑批Job运行状态

     在上一篇文章中已经分析了SQL SERVER中关于邮件的基础配置,本篇将利用此功能对多台Server的跑批Job进行监控。  本篇实现  1、每天检查服务器中的SQL Server跑批Job的运行状态,如果跑批失败,则发邮件告诉...

    程序员的SQL金典(不错)

    《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改、查等SQL的支持,给出了这些SQL的应用案例;第2部分为进阶篇,讲解了函数、子查询、表连接、不同DBMS中的SQL语法差异、SQL调优、NULL值...

    21天学会SQL

    第一篇 SQL Server 2008基础篇 第1章 学习数据库的准备 ( 教学视频:58分钟) 15 1.1 认识数据库 15 1.1.1 为什么要使用数据库 15 1.1.2 认识数据库产品 15 1.2 了解数据库对象 17 1.2.1 表 17 1.2.2 视图 17 1.2.3...

    程序员的SQL金典完整版

    MS SQL Server、Oracle 和 DB2 中的差异进行了分析;详细讲解数据库对增、删、改、查等 SQL的支持并给出了相应的SQL 应用案例;透彻分析函数、子查询、表连接、不同DBMS中 的 SQL 语法差异、SQL 调优、NULL 值处理、...

    ( 程序员的SQL金典(完整).zip )

    《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...

    程序员的SQL金典

    《程序员的SQL金典》主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析。《程序员的SQL金典》分为3部分:第1部分为基础篇,主要讲解数据库对增、删、改...

    SQL--Server数据库课程设计.doc

    2 第一章 绪 论 3 1.1 设计目的 3 1.2 开发工具选择 3 1.3 开发环境 3 1.4 本报告的主要内容 3 第二章 需求分析 4 2.1系统需求简介 4 2.1.1设计任务 4 2.1.2功能需求分析 4 2.2 功能模块分解图 4 2.2.1学生信息查询...

Global site tag (gtag.js) - Google Analytics