我定义了一个空的CRecordset对象指针m_pCommonRS  
通过CDatabase对象与数据源连接  :  
m_pCommonRS=    new  CCommonRs(&m_Database);                      
希望在open的时候送入sql字符串来产生记录集:  
m_pCommonRS->Open(CRecordset::snapshot,strSQL);  
连接数据库和打开数据库中的表都成功.  
但是进行多表查询时报错:    
因为结果集是由一个连接条件生成的,导致不能执行定位请求.

解决方案 »

  1.   

    先用sql做出你想要的查询,然后从CRecordset派生出类连到查询上,就像用一张表一样用。
      

  2.   

    可以先写sql语句,在打开数据表,如下
    CString tempSqlStr;
    tempSqlStr="select PROCESS_ROUTE.* from PROCESS_ROUTE,NC_PROGRAM_LIB where NC_PROGRAM_LIB.NC_PROGRAM_NAME=PROCESS_ROUTE.NC_PROGRAM_NAME and PROCESS_ROUTE.DRAWING_NUMBER='";// 
    tempSqlStr+=m_PartDrawCode;
    tempSqlStr+="'";
    if(pPartSet->IsOpen())
    { pPartSet->Open(AFX_DB_USE_DEFAULT_TYPE,tempSqlStr,CRecordset::none);
    }