四. 为使用查询通知作准备
因为默认情况下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 数据处理专题 (1485篇文章)
·SQL Server 索引和查询专题 (2717篇文章)
·SQL Server (1448篇文章)
·SQL Server 查询 (33篇文章)
·SQL Server (1449篇文章)
·SQL Server 索引和查询专题 (2717篇文章)
·SQL Server (1448篇文章)
·SQL Server 查询 (33篇文章)
·SQL Server (1449篇文章)
·网络分析软件sniffer pro入门 (12772次浏览)
·Win XP系统内存性能优化 (6761次浏览)
·Windows 2000 安装指南 (3215次浏览)
·防止sql注入的简单方法 (3094次浏览)
·组策略应用技巧 (1643次浏览)
·SQL Server SQL语句导入导出大全 (1365次浏览)
·再谈SQL注入入侵动网SQL版 (1239次浏览)
·ms sql删除重复的记录 (1092次浏览)
·DM分区软件使用详解 (596次浏览)
·在SQL Server中使用存储过程的代码 (593次浏览)
·Win XP系统内存性能优化 (6761次浏览)
·Windows 2000 安装指南 (3215次浏览)
·防止sql注入的简单方法 (3094次浏览)
·组策略应用技巧 (1643次浏览)
·SQL Server SQL语句导入导出大全 (1365次浏览)
·再谈SQL注入入侵动网SQL版 (1239次浏览)
·ms sql删除重复的记录 (1092次浏览)
·DM分区软件使用详解 (596次浏览)
·在SQL Server中使用存储过程的代码 (593次浏览)
·存储厂商追捧微软SQL Server 2005 10-28
·NetApp发布SQL Server 2005数据管理软件 10-28
·飞康IPStor将支持微软SQL Server 2005 10-28
·飞康对SQL Server 2005提供用户化支持 10-28
·初次使用SQL破解某电影网站的记录 10-28
·黑客教学:SQL注入法攻击一日通(V3.0) 10-28
·减少SQL日志的方法 10-28
·传奇3.0--常要用到的SQL脚本 10-28
·传奇3.0--使用SQL数据浏览器来导入和修改你的数据 10-28
·PL/SQL集合增强 10-28
·NetApp发布SQL Server 2005数据管理软件 10-28
·飞康IPStor将支持微软SQL Server 2005 10-28
·飞康对SQL Server 2005提供用户化支持 10-28
·初次使用SQL破解某电影网站的记录 10-28
·黑客教学:SQL注入法攻击一日通(V3.0) 10-28
·减少SQL日志的方法 10-28
·传奇3.0--常要用到的SQL脚本 10-28
·传奇3.0--使用SQL数据浏览器来导入和修改你的数据 10-28
·PL/SQL集合增强 10-28
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容



