各位高手:
    目前我遇到一个问题,就是在用ADO成功打开某dbase数据库文件并正确显示其内容后,若是用以前删除SQL Server7.0某数据库中某TABLE中的记录一样的方法做(是成功的),则出现“[Microsoft][ODBC dBase 驱动程序]无法从指定的数据表中删除”的出错信息,因而无法执行删除。   问题代码如下:
   HRESULT hr;   this->Move(ulRecNo);   // 记录移到给定的行号上

   if (this->m_pMySet->Supports(adDelete))
   {
try
{
    hr = this->m_pMySet->Delete(adAffectCurrent);
    hr = this->m_pMySet->Update();
}
catch(_com_error e)
{
    ::AfxMessageBox(e.Description());
             // e.Description()在ADO访问dBase数据表时,显示
             // “[Microsoft][ODBC dBase 驱动程序]无法从指定的数据表中删除”
}
if (FAILED(hr))
{
             ::AfxMessageBox("错误:删除失败");
    return FALSE;
}
   }  各位高手能否帮我解决这个问题?

解决方案 »

  1.   

    dbase与sql server有区别,具体的你可以看看书
      

  2.   

    debug
    看一下是hr = this->m_pMySet->Delete(adAffectCurrent);的问题
    还是hr = this->m_pMySet->Update();的问题
    我记得好像删除不需要更新吧。
    我是使用Sql语句做删除的
      

  3.   

    m_sDataDelete.Format("DELETE FROM OTHERDEC where ID=%s",m_sDbID);
    gl_pConnection->BeginTrans();
    ExecuteScriptCommandText(m_sDataDelete);
    gl_pConnection->CommitTrans();void ExecuteScriptCommandText(LPCTSTR lpctszCmdText)
    {
    //把从文本里读取出来的脚本提交到服务器执行
    _CommandPtr pCommand;
    _variant_t varNull;
    varNull.vt=VT_ERROR;
    varNull.scode=DISP_E_PARAMNOTFOUND;
    HRESULT hr;
    try{
    hr=pCommand.CreateInstance(__uuidof(Command));
    if(SUCCEEDED(hr))
    {
    pCommand->ActiveConnection=gl_pConnection;
    pCommand->CommandType=adCmdText;
    pCommand->CommandText=_bstr_t(lpctszCmdText);
    pCommand->Execute(&varNull,&varNull,adCmdUnknown);
    }
    }
    catch(_com_error &e)
    {
    _bstr_t bstrSource(e.Source());
    _bstr_t bstrDescription(e.Description()); CString csError;
    csError.Format("编号:%08x\n编号含义:%s\n源代码:%s\n描述:%s\n",
               e.Error(),e.ErrorMessage(),(LPCTSTR)bstrSource,(LPCTSTR)bstrDescription);
    MessageBox(NULL,(LPCTSTR)csError,"[ExecuteScriptCommnadText]由#import引进的对象出现异常",MB_OK|MB_ICONSTOP);
    gl_pConnection->RollbackTrans();
    }
    catch(...)
    {
    MessageBox(NULL,"不可捕捉的异常","[ExecuteScriptCommnadText]由#import引进的对象出现异常",MB_OK|MB_ICONSTOP);
    gl_pConnection->RollbackTrans();
    }
    }