我在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
}

最佳答案

这是示例:

  • Open Curror

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

    pRecst-> MoveFirst();

    pRecst-> Find(“Account ='nikala'”,0,adSearchForward);
  • 检查记录是否存在具有EndOfFile属性:

    bool(boolean) 发现=!pRecst-> EndOfFile;
  • 09-27 00:00