请教各位高手,我刚刚接触MFC数据库编程.使用的是ADO .用的DataGrid控件.数据库的增删改查询都会用了.但是有个问题未解决,就是如何将从数据库中查询到的数据赋值给一个变量.
    我想做的是将数据库中取到的数据通过网络传送给别人,用的是Socket传送.网络编程已经解决.但是如何从数据库中取数据,并将取出的数据赋值给作为发送对象的变量,这一点不会.所以想请教一下各位高手,如何解决.最好能有代码.
    不胜感谢..

解决方案 »

  1.   


    try 
    {
    int nIndex=0; //记录序号
    CString strSQL = "select * from Student"; //读取所有记录
    m_pRecordSet->Open(_variant_t(strSQL),
    theApp.m_pConnection.GetInterfacePtr(), 
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);

    while (!m_pRecordSet->adoEOF)//记录尾
    {
    _variant_t var; //临时变量
    CString strSN; //学号
    CString strName; //姓名
    CString strState; //状态
    CString strGrade; //成绩

    //读取“学号”字段
    var = m_pRecordSet->GetCollect("STD_SN");
    if (var.vt != VT_NULL)
    {
    strSN = (LPCSTR)_bstr_t(var);
    }
    //读取“姓名”字段
    var = m_pRecordSet->GetCollect("STD_NAME");
    if (var.vt != VT_NULL)
    {
    strName = (LPCSTR)_bstr_t(var);
      } //读取“状态”字段
    var = m_pRecordSet->GetCollect("STD_STATE");
    if (var.vt != VT_NULL)
    {
    strState = (LPCSTR)_bstr_t(var);
    }
    //读取“成绩”字段
    var = m_pRecordSet->GetCollect("STD_GRADE");
    if (var.vt != VT_NULL)
    {
    strGrade = (LPCSTR)_bstr_t(var);
    }
    m_pRecordSet->MoveNext(); //移动记录
    nIndex++; //记录序号加1
    }
    m_pRecordSet->Close();//关闭
    }
    catch(_com_error *e)
    {
    AfxMessageBox(e->ErrorMessage());
    }
    catch(...)
    {
    AfxMessageBox("访问数据库服务器时发生异常。");
    return;
    }