我派生了一个CDaoRecordset类,然后设置m_strFilter参数打开表,如下:CBillFlowRec rec(theApp.m_pDaoYearDB);
strVolumeSQL.Format("name = "aaaa"); 
rec.m_strFilter = strVolumeSQL;
rec.Open();
if(rec.IsEOF())
。现在发现的问题是不论我填入什么条件,open一律返回所有记录,就象m_strFilter没有设置一样,这到底为什么???

解决方案 »

  1.   

    strVolumeSQL.Format("name = "aaaa"); ???是你打错了把?MSDN上说:
       It does not include the reserved word WHERE to filter the recordset. The use of this data member is not applicable to table-type recordsets. The use of m_strFilter has no effect when opening a recordset using a CDaoQueryDef pointer.
      

  2.   

    你的SQL格式有误,我也试过了,应该是strVolumeSQL.Format("[name] = 'aaaa');注意不是双引号,是单引号;
    而且你也可以试着用这种方法:
    CDaoDataBase db;
    CDaoQueryDef qd;
    CString sqlstr;
    sqlstr="select * form 表名 where [name]='aaaa'";
    qd.Create(NULL,sqlstr);
    db.Open(&qd);