如何从 SQL Express 2012 获取数据更改通知



我们有客户端 - 服务器应用程序,其中客户端在Delphi XE4中构建,服务器使用SQL Server 2012 Express版本。我的 delphi 应用程序(将 WMI 用于服务器事件)能否从速成版接收数据更改通知?

文档说,Express 版支持服务代理作为"仅限客户端"。

是否可以使用速成版实现上述功能,而无需借助其间的任何其他SQL服务器版本。

是的,你可以。查询通知和 SQLDependency 在速成版中功能齐全。使用查询通知解释了如何直接从 OleDB(通过 SSPROP_QP_NOTIFICATION_TIMEOUTSSPROP_QP_NOTIFICATION_MSGTEXTSSPROP_QP_NOTIFICATION_OPTIONS)和 ODBC(通过 SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUTSQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXTSQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS)使用查询通知。我不知道 Delphi 是否在更高级别公开查询通知,或者您必须针对低级别的 ODBC 或 OLEDB 进行编码。真正可用的选项是通过 C# 等中的托管驱动程序公开的,通过SQLDependency类。

我在MartynA发布的链接中看到XE8支持查询通知。它应该与 Express 一起使用。

Express 的"仅限客户端"限制严格是指 Service Broker 远程通信(在 SQL Server 实例之间交换消息),这是查询通知不需要的功能。

您不能仅在速成版中使用此功能。

您至少需要标准版才能启动并运行 SQL Server Service Broker 后端。一旦您有一个标准编辑实例,其他速成版实例就可以参与。

最新更新