1

我有一个 C++ 应用程序,它必须对保存在 SQL 数据库中的状态更改做出反应。他们必须实时做出反应,目前这是通过轮询来完成的。但是,我需要的实时响应时间使数据库过载。

我已经阅读了 SQL Server 2005 中引入的查询通知,但实际上我并不真正了解可用的不同 SQL 连接方法。目前我使用 ADO.NET 来促进数据库通信,但我发现的用于执行这种性质的查询通知的唯一示例代码是 C# 和 VB。更不用说我正在努力理解这个概念。这是我当前如何使用 ADO.NET 运行 SQL 的示例。

    hr = link.CreateInstance(__uuidof(Connection) );

        if (link) { // Execute the query on the open connection using existing command object

        pCommand.CreateInstance(__uuidof(Command));
        pCommand->ActiveConnection = link;
        pCommand->CommandType = ado20CommandType;
        pCommand->CommandText = strQuery.GetBuffer(0);
        pCommand->PutPrepared(true);
        pCommand->NamedParameters = true;

            if (pRecordSet = pCommand->Execute(&vRecordsAffected,NULL,NULL)) {  // Execute the final query and set object-level recordset object
            lRecordsAffected = vRecordsAffected.lVal;

            _RecordsetPtr pfuRecordSet = link->Execute(_T("SELECT @@IDENTITY as pmIDENT;"),NULL,adCmdText);
            CString strID = pfuRecordSet->GetFields()->GetItem(COleVariant("pmIDENT"))->Value.bstrVal;
            int nID = atoi(strID);
            if (nID > 0) {
                nLastInsertedID = nID;
            }

            return true;
        }

我想知道是否有人可以为我提供资源和/或示例代码来帮助我在 C++ 中进行设置?提前致谢。

4

1 回答 1

0

从 SQL Server 数据库中获取数据的最快方法是使用 SqlDataReader,它是只进的,只读的。

看看这个 C++ 代码并尝试一下。 http://tinyurl.com/m6u9jh7

于 2015-05-23T21:37:19.583 回答