代码如下:
pSysCheckDB = new CDatabase;
pSysCheckDB->Open(NULL,false,false,"ODBC;DSN=LoginSQLSRV;UID=user;PWD=12345",false);
if(! pSysCheckDB->IsOpen())
TRACE0("Can not Open database");
CString strSql;
strSql = "select * from mytesttable FOR UPDATE";
TRY{
CSysCheckSet * pSysSet=new CSysCheckSet(pSysCheckDB);
pSysSet->Open(CRecordset::snapshot,strSql,CRecordset::none);
}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);                 
}
弹出的错误是:
在READ ONLY游标上不能指定 FOR UPDATE.未能准备语句.

解决方案 »

  1.   

    CSysCheckSet是我添加的一个CRecordSet派生类,和表也做了绑定.
    用户名user也在数据库里添加了UPDATE的权限,为什么还会有这样的错误?
      

  2.   

    关于游标
    我和你出现了类似的问题
     在READ ONLY游标上不能指定 FOR UPDATE的问题???急!!!  
    作  者:  threebags (三只口袋)        Blog  
    请问你是怎么解决的?
    谢谢~~~~~~~~~~