zoukankan      html  css  js  c++  java
  • C++ ADO 数据查询

     

    ADO 数据查询

    关键点

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

     

    实现过程

     

    // stdafx.h : include file for standard system include files,
    #import "c:program filescommon filessystemadomsado15.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);      
    }

        

     

     

      

     


     

    备注

     

     

    相关链接

                               

     

     




    附件列表

    • 相关阅读:
      pat 1027. Colors in Mars (20)
      pat 1035. Password (20)
      pat 1006. Sign In and Sign Out (25)
      pat 1031. Hello World for U (20)
      pat 1005. Spell It Right (20)
      pat 1002. A+B for Polynomials (25)
      pat 1008. Elevator (20)
      pat 1001. A+B Format (20)
      算法分析与设计实验四 密码算法
      Android通讯录管理(获取联系人、通话记录、短信消息)
    • 原文地址:https://www.cnblogs.com/xe2011/p/3885675.html
    Copyright © 2011-2022 走看看