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 数据查询

C++  ADO 数据查询

备注

相关链接

 

附件列表

上一篇:js浮点数运算精度问题


下一篇:JAVA CDI 学习(4) - @Alternative/@Default/@Any & Extension