这是一视图OnInitialUpdate()的部分代码
m_JczlSet.m_pDatabase=&theApp.db;
m_JczlSet.Open();
m_YhzlSet.m_pDatabase=&theApp.db;
m_YhzlSet.Open();
//nCount=m_YhzlSet.GetRecordCount();
//nLrCount=m_YqfbSet->GetRecordCount();
一旦打开两个//,系统就回出错,显示执行非法操作,为什么?
如果要得到记录集的记录数目,该怎么做?如果想得到一字段最大(小)值又该怎么做

解决方案 »

  1.   

    必须要支持游标才能得到记录数目吧.
    如果要得到字段的最大最小值直接用sql语句 select max(字段) as 最大值 from 表 就可以好了
      

  2.   

    必须要支持游标才能得到记录数目吧.什么意思啊
    这样做可以吗:
    CRecordset.Open(CRecordset::snapshot,"select count(*) as my-variable-name from tab-name");
    CRecordset.Open(CRecordset::snapshot,"select max(*) as my-variable-name from tab-name");可以吗?
    如果前面已经打开了记录集(默认打开方式,即无特殊SQL请求,而是执行select * from tab-name),是否要先关闭记录集,才可以在打开吗?如果想用REQUERY执行一条SQL该怎么做啊?
      

  3.   

    m_JczlSet.m_pDatabase=&theApp.db;
    m_JczlSet.Open();
             m_JczlSet.Close();
    m_YhzlSet.m_pDatabase=&theApp.db;
    m_YhzlSet.Open();
    //nCount=m_YhzlSet.GetRecordCount();
    //nLrCount=m_YqfbSet->GetRecordCount();
             m_JczlSet.Close();
      

  4.   

    m_JczlSet.m_pDatabase=&theApp.db;
    m_JczlSet.Open();
             m_JczlSet.Close();
    m_YhzlSet.m_pDatabase=&theApp.db;
    m_YhzlSet.Open();
    //nCount=m_YhzlSet.GetRecordCount();
    //nLrCount=m_YqfbSet->GetRecordCount();
             m_JczlSet.Close();
    什么意思
      

  5.   

    使用完要关闭
    m_JczlSet.Close();
      

  6.   

    CDatabase db;
    m_ptreeRecordSet = new CTreeRecordSet;
    try 
    {
    m_ptreeRecordSet->Open(CRecordset::snapshot, "select * from KNOWLEDGE_TREE", CRecordset::none);
    db.Open(NULL, FALSE, FALSE, _T(((CKMSApp*)AfxGetApp())->m_strDefaultConnect), FALSE); //如果未连通数据库

    }
    catch(CDBException* e)
    {
    e->Delete();
    }
    db.Close();
      

  7.   

    建议楼主使用ADO对象,操作灵活方便。