C++ ADO 数据查询

 

ADO 数据查询

关键点

上1条 下1条 第1条 最后1条

 

实现过程

 

// stdafx.h : include file for standard system include files,
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF""adoEOF")      

    

// ADODlg.h : header file

public:
    _ConnectionPtr    m_pConnection;

    _RecordsetPtr     m_pRecordset;

    

// ADODlg.cpp : implementation file

BOOL CADODlg::OnInitDialog() 
    m_pConnection.CreateInstance(__uuidof(Connection));
    try         
    { 
        // 打开本地Access库Demo.mdb 
        m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Db1.mdb","","",adModeUnknown); 
    } 
    catch(_com_error e
    { 
        AfxMessageBox("数据库连接失败,确认数据库Db1.mdb是否在当前路径下!"); 
        return FALSE
    } 
    m_pRecordset.CreateInstance(__uuidof(Recordset)); 
    try 
    { 
        m_pRecordset->Open("SELECT * FROM student",        // 查询DemoTable表中所有字段 
        m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针 
        adOpenDynamic, 
        adLockOptimistic, 
        adCmdText); 
    } 
    catch(_com_error *e
    { 
        AfxMessageBox(e->ErrorMessage()); 
    }    
     
void CADODlg::OnFirst() 
{    
    _variant_t var
    
    if(!m_pRecordset->BOF
        m_pRecordset->MoveFirst(); 
    else 
    { 
        AfxMessageBox("已经是第一个了"); 
        return; 
    }     
    var = m_pRecordset->GetCollect("Name"); 
    if(var.vt != VT_NULL) 
        m_strName     = (LPCSTR)_bstr_t(var); 
    var = m_pRecordset->GetCollect("Sex"); 
    if(var.vt != VT_NULL) 
        m_strSex = (LPCSTR)_bstr_t(var);
    var = m_pRecordset->GetCollect("Age");
    if(var.vt != VT_NULL)
    {
        m_nAge = atoi(LPCTSTR(_bstr_t(var)));
    }
    var = m_pRecordset->GetCollect("Grade");
    if(var.vt != VT_NULL)
    {
        m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
    }
    UpdateData(FALSE);  
}
void CADODlg::OnPrev() 
{
    _variant_t var
    if(m_pRecordset->BOF
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    } 
     m_pRecordset->MovePrevious();
       if(m_pRecordset->BOF
    { 
        AfxMessageBox("已经是第一个了"); 
        return; 
    } 
    else
    {
        var = m_pRecordset->GetCollect("Name"); 
        if(var.vt != VT_NULL) 
            m_strName     = (LPCSTR)_bstr_t(var); 
        var = m_pRecordset->GetCollect("Sex"); 
        if(var.vt != VT_NULL) 
            m_strSex = (LPCSTR)_bstr_t(var);
        var = m_pRecordset->GetCollect("Age");
        if(var.vt != VT_NULL)
        {
            m_nAge = atoi(LPCTSTR(_bstr_t(var)));
        }
        var = m_pRecordset->GetCollect("Grade");
        if(var.vt != VT_NULL)
        {
            m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
        }
        UpdateData(FALSE);  
    }
}
 
void CADODlg::OnNext() 
{
    _variant_t var
    if(m_pRecordset->adoEOF
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    } 
    m_pRecordset->MoveNext();
       if(m_pRecordset->adoEOF
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    } 
    else
    {
        
        var = m_pRecordset->GetCollect("Name"); 
        if(var.vt != VT_NULL) 
            m_strName     = (LPCSTR)_bstr_t(var); 
        var = m_pRecordset->GetCollect("Sex"); 
        if(var.vt != VT_NULL) 
            m_strSex = (LPCSTR)_bstr_t(var);
        var = m_pRecordset->GetCollect("Age");
        if(var.vt != VT_NULL)
        {
            m_nAge = atoi(LPCTSTR(_bstr_t(var)));
        }
        var = m_pRecordset->GetCollect("Grade");
        if(var.vt != VT_NULL)
        {
            m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
        }
        UpdateData(FALSE);  
    }
}
 
//最后1条    
void CADODlg::OnLast() 
{    _variant_t var
    
    if(!m_pRecordset->adoEOF
        m_pRecordset->MoveLast(); 
    else 
    { 
        AfxMessageBox("已经是最后一个了"); 
        return; 
    }     
    var = m_pRecordset->GetCollect("Name"); 
    if(var.vt != VT_NULL) 
      m_strName     = (LPCSTR)_bstr_t(var); 
    var = m_pRecordset->GetCollect("Sex"); 
    if(var.vt != VT_NULL) 
        m_strSex = (LPCSTR)_bstr_t(var);
    var = m_pRecordset->GetCollect("Age");
    if(var.vt != VT_NULL)
    {
        m_nAge = atoi(LPCTSTR(_bstr_t(var)));
    }
    var = m_pRecordset->GetCollect("Grade");
    if(var.vt != VT_NULL)
    {
        m_nGrade = atoi(LPCTSTR(_bstr_t(var)));
    }
    UpdateData(FALSE);      
}

    

 

 

  

 


 

备注

 

 

相关链接

                           

 

 




附件列表

     

    C++ ADO 数据查询,古老的榕树,5-wow.com

    郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。