if(!spdb.IsOpen())
{
//spdb.Open(0,FALSE,FALSE,_T("ODBC;DRIVER=SQL Server;UID=yu;PWD=a123b123;SERVER=mysql"),0);
spdb.OpenEx(_T("DRIVER=SQL Server;UID=yu;PWD=a123b123;SERVER=mysql"),CDatabase::noOdbcDialog);
}
cy12* srs=new cy12(&spdb);
//srs->Open(AFX_DB_USE_DEFAULT_TYPE,_T("Select top 10 * from my_tb where send_ok>0"));
srs->Open(CRecordset::dynamic,_T("Select top 1 * from send_tb where send_ok>0"),CRecordset::none);
srs->Edit();
srs->m_send_ok=0;
srs->Update();告诉我记录集是只读的,Win2k+SQL2k+Vc6
怎么回事呀

解决方案 »

  1.   

    看看登陆 yu 有没有表 send_tb 的update权限
      

  2.   

    在哪看呀,这个用户对于send_tb表有所有的权限
      

  3.   

    不要用vc的类来修改记录,直接用sql语句不会出问题。用update
      

  4.   

    还是用update吧,CDatabase::ExecuteSQL执行点语句,麻烦一点,但是肯定不会有上述的问题的。
      

  5.   

    还是一样呀,ExecteSQL UPdate也不行
      

  6.   

    更奇怪的问题
    我把查询语句select top 10 *里的top 10去掉
    变成select * from send_tb
    居然好使了?问题出在哪?
    可是我必须要用top 的