【问题标题】:SqlDependency (change notifications) in Compact Edition?精简版中的 SqlDependency(更改通知)?
【发布时间】:2012-01-08 20:15:07
【问题描述】:

我猜答案是否定的,但我还是要问:SQL Server 2005 及更高版本支持通过服务代理机制实现查询的实时视图。 .NET 类 SqlDependency 使用此功能。 SQL Server CE 不支持。

我想知道:如果有任何版本的 SQL Server 我想要实时查看查询,那就是 CE,不是吗?毕竟,这是我最想运行响应式交互式 GUI 的对象。是否有替代机制可以通过 CE 实现查询的实时视图,或者通过轮询来实现?

【问题讨论】:

    标签: sql-server-ce service-broker livequery sqldependency


    【解决方案1】:

    您可以将您的 GUI 与 SqlCeResultSet 绑定,后者是基础数据上的实时光标。

    【讨论】:

    • 谢谢,我不知道。不幸的是,似乎没有合适的控件来绑定它。绑定似乎是为 WinForms 设计的,但除非您单击单元格,否则即使是那些也不会更新。但这在数据库 api 层可能不是问题。
    【解决方案2】:

    SQL CE 是一个进程内服务器。因此,您不会遇到并发访问问题和检测其他进程所做更改的难题。在大型 SQL Server 上,这个问题由 Query Notifications 解决,SqlDependency 和朋友在客户端利用。

    因为在 SQL CE 案例中,只有一个进程会更改数据(您的进程!),您将始终知道何时/哪些数据发生了更改,并且可以相应地刷新视图。

    【讨论】:

    • 我知道数据何时发生变化,理论上我可以手动编写实现所有刷新所需的逻辑。但这取决于场景,既繁琐又困难。在各种条件下使用连接对任意查询进行映像,现在我更改了其中一个相关表中的一行。我必须更新吗?这是一个不平凡的问题,我原以为这是为我解决它的数据库工作。
    • 特别是,请给我命名一个通用数据库浏览器,它可以浏览 sql server 或 ssce,并根据自己所做的修改更新自己的查询结果。我什么都不知道。
    • 结论:SSCE 在这个答案中似乎是错误的。 SSCE 确实支持应用程序内甚至跨应用程序的并发访问。我正在研究相同的场景——一个应用程序更新数据库,另一个应用程序想要提供同一数据库的近实时视图。如果 SSCE 提供了这样做的方法,那就太好了。
    猜你喜欢
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多