【问题标题】:Can not find record in Recordset ADO在记录集 ADO 中找不到记录
【发布时间】:2019-04-19 22:32:49
【问题描述】:

我在 C++ 中使用 ADO,但在 Recordset 中查找特定记录时遇到问题。我编写了 Connection to database、Recordset.Open 等...所以一切顺利。我要查找的记录已存在于数据库中,但 Recordset->Find 方法无法在 Recordset 中找到该特定数据。你能看看我的代码并告诉我哪里出错了吗?或者这是编写 Recordset->Find() 方法的正确语法 P.S 我是 ADO 的新手,所以我不知道这是否是正确的语法。提前谢谢你。

我已经尝试通过 Fields->GetItem 返回记录并且它有效。它返回“nikala”。(如果它确实重要。)这意味着 Recordset 正在打开。 _bstr_t AccReturn = pRecst->Fields->GetItem("Account")->Value;

我的代码:

pRecst->MoveFirst();
bool found = pRecst->Find("[Account] = 'nikala'", 0, adSearchForward);
if(found == true)
{
    //update code
}
else
{
    //insert into DB
}

【问题讨论】:

    标签: c++ sql-server ado recordset


    【解决方案1】:

    示例如下:

    1. 打开光标

      pRecst->Open("SELECT * FROM TABLE", _variant_t((IDispatch *)pConnection),
      adOpenStatic, adLockReadOnly, adCmdText);

      pRecst->MoveFirst();

      pRecst->Find("Account = 'nikala'", 0, adSearchForward);

    2. 使用 EndOfFile 属性检查记录是否存在:

      bool found = !pRecst->EndOfFile;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多