CDatabase db;
db.OpenEx("Drive={Microsoft Access Driver (*.mdb)};DBQ=F:\\vc\\id3\\information.mdb;");
CString strsql= "select * from guiltyrecord where 文化程度='初中'";
CId3Set rs(&db);
rs.Open(AFX_DB_USE_DEFAULT_TYPE,_T(strsql));
////以上代码可以正常运行,CString strsql= "select 编号,文化程度,犯罪程度 from guiltyrecord where 文化程度='初中'";
CId3Set rs(&db);
rs.Open(AFX_DB_USE_DEFAULT_TYPE,_T(strsql));
//////以上代码也可以正常运行,但当select后面的列多于9列时,就会出现“检索记录错误”的错误,请高手给与解答。

解决方案 »

  1.   

    我也遇到过这样的问题,这可能是VC中的BUG。您在生成记录集类的时候肯定是绑定了表中的所有列
      

  2.   

    CString strsql= "select 编号,文化程度,犯罪程度 from guiltyrecord where 文化程度='初中'";
    ------------------------------------   ^^ 这里! 看到没? 你用的是全角的逗号, 写代码要小心
      

  3.   

    楼上的可真够细心的.dao可能在这方面有限制,建议用ado
      

  4.   

    我也问个问题,AFX_DB_USE_DEFAULT_TYPE我用这个老是弹出:
    在调用SQLFetchScroll/SQLExtendedFetch之前,没有列被绑定.
    用CRecordset::forwardOnly就没事.
    并且我用CRecordset::dynamic就弹出:
    "odbc驱动程序不支持动态指针"
    请帮忙