VC连接access


(1)首先拷贝 c:\program files\common files\system\ado\ 目录中的 msado15.dll 文件到项目中。

(2)在VC中加入DLL,具体方法如下:



(3)创建连接对象,和打开数据库的具体代码如下:

void CMyDlg::OnButton1() 
{
    // TODO: Add your control notification handler code here
    
    if (AfxOleInit())//初始化OLE
    {
        _ConnectionPtr m_pConnection;//声明一个连接对象
        _RecordsetPtr m_pRecordset;
        HRESULT hr;
        try{

            hr = m_pConnection.CreateInstance("ADODB.Connection"); //创建连接
            if(SUCCEEDED(hr))//判断是否连接成功
            {
                MessageBox("指针连接成功!");
                m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown);//打开数据库
                
                _variant_t RecordsAffected;//声明返回被修改的条目数
                CString strSQL;//SQL字符串语句
                strSQL.Format("insert into d1(name) values('%s')","正月龙");
                m_pRecordset = m_pConnection->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText);//操作数据库
                MessageBox("数据加入成功!");
                //m_pRecordset->Close();
                                
                
                m_pRecordset = m_pConnection->Execute("select count(*) from d1",&RecordsAffected,adCmdText);//返回总条目数
                _variant_t vIndex = (long)0;  
                _variant_t vCount = m_pRecordset->GetCollect(vIndex);//取得第一个字段的整数值放入vCount变量
                CString str;
                str.Format("总共有%d条数据",vCount.lVal);
                MessageBox(str);


                m_pRecordset = m_pConnection->Execute("select * from d1",&RecordsAffected,adCmdText);
                //m_pRecordset->MoveNext();
                //m_pRecordset->MoveNext();
                _variant_t vIndex1 = (long)0;  
                _variant_t vCount1 = m_pRecordset->GetCollect(vIndex1);//取得第一个字段的字符串值放入vCount1变量 
                CString str1;
                str1 = vCount1.bstrVal;
                MessageBox("第一个字段内容是:"+str1);

                m_pRecordset->Close();

            }
        }catch(_com_error e)
        {
            CString str;
            str.Format("数据库连接失败\r\n错误信息:%s",e.ErrorMessage());
            MessageBox(str);

        }
        
        //MessageBox("初始化 OLE 成功!");
    }else


    MessageBox("初始化 OLE 失败");
    
}

 

 

 

posted @ 2017-03-09 13:05  正月龙  阅读(382)  评论(0编辑  收藏  举报
留言板