gpt4 book ai didi

c++ - 在 SQL Server 表中进行更改时通知 C++ 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:58:20 24 4
gpt4 key购买 nike

我以前发过这个,但没有得到符合我要求的合适答案。我正在寻找一种技术来在对 SQL Server 表进行更改时通知 C++ 应用程序。我们的中间层是 C++,我们不打算迁移到 .NET 基础设施,这意味着我们不能使用 SQLDependency 或 SQL Notification Servers。我们暂时还坚持使用 SQL Server 2005,它也消除了 SQL Service Broker 外部激活(在 SQL 2008 中引入)。

为了更广泛地了解我正在努力实现的目标:我们的数据库正在更新新信息;每当收到一条新信息时,我们都希望将其推送到 C++ 应用程序,以便其仪表板为用户反射(reflect)最新数据。

我们知道我们可以通过让 C++ 应用程序轮询数据库来做到这一点,但我认为这是低效的架构,并且希望让 SQL 将信息或通知推送到 C++。

最佳答案

您实际上可以使用 C++ 中的查询通知。 SQLNCLI10 的 OleDB 和 ODBC 客户端以及 SQLNCLI 提供程序都支持查询通知。参见 Working with Query Notifications ,在页面的后半部分,您将找到用于 OleDB 行集的 SSPROP_QP_NOTIFICATION... 内容和用于 ODBC 语句的 SQL_SOPT_SS_QUERYNOTIFICATION... 内容。因此,从 C++ 中间层订阅通知是绝对可行的。难题的第二部分是实际获取通知,无非就是发布 RECEIVE。和等待。换句话说,您可以在 OleDB 或 ODBC 上用纯 C++ 滚动您自己的 SqlDepdency。通知中间层后,更新客户端显示就轻而易举了。

在检测数据变化的所有替代方法中,您找不到比查询通知更好的方法了。

顺便说一句,您应该绝对避免的一件事是通过触发器通知客户(哦,恐怖...)。

关于c++ - 在 SQL Server 表中进行更改时通知 C++ 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2158839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com