strSQL=select parentNo,bom10110.part, name,description from bom10110,inv10100 
from bom10110,inv10100
where parentNo like '%A01%' and bom10110.part=inv10100.part在vc中利用ado打开数据库:
m_pRecordset->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(), adOpenKeyset,adLockOptimistic,adCmdText);
只能返回10条记录(对于我的例子而言)而同样的sql语句在SQL查询分析器中返回了49条记录!也就是说m_pRecordset只返回了部分结果,而丢失了大部分!
请问大侠,这是怎么回事?

解决方案 »

  1.   

    不會這樣的!再查查哪裡有不對的地方不?你在Open的地方看一 strSQL 的值,
    _variant_t(strSQL) 如果 strSQL 是CString 好像直接寫strSQL就可以了不要轉換,另外你可以換個條件試試
      

  2.   

    我也换了条件试了,不行
    比如我改成一个表的时候:
    select * from bom10110 where ParentNo like '%A01%',结果还是一样的.
    对特定的记录查询时,
    select * from bom10110 where part ParentNo = 'A01000837'
    数据库里有这条记录,但是返回的结果却为空.
    以上的sql语句都是在调试跟踪的状况下得来的.strSQL时CString的,要转换的.不转换就会报错.
      

  3.   

    strSQL=select parentNo,bom10110.part, name,description from bom10110,inv10100 
    from bom10110,inv10100
    where parentNo like '%%A01%%' and bom10110.part=inv10100.part要用两个百分号。
      

  4.   

    kugou123(酷狗),为什么要用两个百分号呀!我以前一直都是用一个百分号,都很正常呀!
    jacky_zwq() 这可不是什么小bug的问题,如果不能返回正确结果,问题可就大了.呵呵
    这不是ado的问题,应该是我的程序问题.
    可是问题在那里呢?
      

  5.   

    你把Open函数的参数变成这样看下
    m_pRecordset->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);