能不能在CRordSet嵌套CRordSet呢?
CRecordset rs(&dbInfo);
 CString strFilter;
 strFilter.Format("SELECT * FROM [company WHERE [company].[CNumber]=%0.9f ",m_Number);
 if (rs.Open(CRecordset::snapshot, 
 strFilter, CRecordset::readOnly
{
int count=0;
while(!rs.IsEOF())
{
CString strcompany,strnumber;
rs.GetFieldValue("company",strcompany);
rs.GetFieldValue("CNumber",strnumber);
m_Quest.InsertItem(count,strcompany);
m_Quest.SetItemText(count,1,strnumber);
CRecordset rs1(&dbInfo);
CString strFilter1;
strFilter1.Format("SELECT * FROM [lirun] WHERE date=%s",m_times);
if (rs1.Open(CRecordset::snapshot,
    strFilter1,CRecordset::readOnly))
{
while(!rs1.IsEOF())
{
CString strshouru,strchengben;
rs1.GetFieldValue("zhuyingshouru",strshouru);
rs1.GetFieldValue("zhuyingchengben",strchengben);
          double maolilv;
maolilv=(atof(strshouru)-atof(strchengben))/atof(strshouru)*100 ;
m_Quest.SetItemText(count,2,CString(maolilv));
  }
}
         rs1.Close();
count++;
rs.MoveNext();
}
rs.Close();
但是程序会跳过rs1这部分。请问应该如何写?

解决方案 »

  1.   

    可以嵌套
    strFilter1.Format("SELECT * FROM [lirun] WHERE date='%s'",m_times);
      

  2.   

    新建CDatabase不行,
     siphonelee(sifone) 能说的详细写么?
      

  3.   

    给你回了阿
    注意时间的两边加上单引号 'XXX '
      

  4.   

    但是date是文本型的,不是这里出的错误呀
      

  5.   

    就是因为文本型的才有问题
    你想,为什么name之类的字段要用单引号?
      

  6.   

    不行你就试试这个
    strFilter1.Format("SELECT * FROM [lirun] WHERE date=#%s#",m_times);
      

  7.   

    跳过那一段,也就是说,rsl一打开就没有记录?
    那你把打开rsl的sql语句 SELECT * FROM [lirun] WHERE date=....
    在查询分析器里做一下,看看结果如何