m_pSet是已经初始化的对象,上面这句的结果记录集我怎么找不到啊,结果记录集中会有aa这个一个字段吗?
如果我用m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,"Select count(*) as aa from [RequestRecord] group by USERID");去执行能得到结果,但每次都要先m_pSet->Close(),然后再打开,而且结果返回放在它原有的字段中,并没有aa这个字段,如果原有的第一个字段不是int型就会报告违反限制数据类型属性,我晕啊,应该怎样做才好?高手来帮忙啊.谢谢各位了.

解决方案 »

  1.   

    ExecuteSQL does not return data records. If you want to operate on records, use a recordset object instead
    就是说,ExecuteSQL是不返回记录集的。
      

  2.   

    如果需要返回记录集,那么就不能用ExecuteSQL函数了。应该先建立一个记录集。然后用记录集打开这个SQL语句。
    m_pSet你是如何创建的?可以重新建一个新的阿
      

  3.   

    我是要在定时器中每隔一定时间来检查在线人数,所以我觉得再创建一个新的也不好,我试了一下修改CRequestRecordSet::GetDefaultSQL()中的return _T("Select count(*) as aa from [RequestRecord] group by [StartTime]"); 语句可以做到.但我不想让它的结果返回到它原来的表的属性中,用count(*) as aa怎么没有作用啊,并没有aa这一列,它将count(*)的值放到m_pSet中的第一列了.
      

  4.   

    1.stdafx.h中加入
    #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") 
    2。app文件的InitInstance中加入
    if(S_OK!=OleInitialize(NULL))
    {
    AfxMessageBox("初始化COM组件库错误");
    }
    下面就是数据库操作
    _ConnectionPtr pConn;
    _RecordsetPtr  pRs;
    CString strSQL;
    pConn.CreateInstance(__uuidof(Connection));
    pConn->CursorLocation=adUseClient;
    strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
    pConn->Open(_bstr_t(strSQL),"","",-1);pRs.CreateInstance(__uuidof(Recordset));
    pRs->CursorLocation=adUseClient;
    pRs->PutActiveConnection(pConn.GetInterfacePtr());pRs1.CreateInstance(__uuidof(Recordset));
    pRs1->CursorLocation=adUseClient;
    pRs1->PutActiveConnection(pConn.GetInterfacePtr());strSQL="select * from catalog order by cataid";
    pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
      

  5.   

    CRecordset rs(&g_MJDatabase);
    strSQL.Format("select employeeid as EMPLOYEE ,cardtypeid as CARDTYPE,cardstatusid as CARDSTATUS from ccard where factoryfixid=%ld",lSerID);
    try
    {
    rs.Open(CRecordset::forwardOnly,strSQL);
    if(!rs.IsEOF())
    {
    rs.GetFieldValue("EMPLOYEE",strEmp);
    rs.GetFieldValue("CARDTYPE",strType);
    rs.GetFieldValue("CARDSTATUS",strStatus);
    rs.Close();
    }
      

  6.   

    谢谢happyparrot(快乐鹦鹉)  chinaseven(天下第七)
    把分送上,非常感谢