如何進行ADO連接ACCESS相關操作
***進行ADO連接ACCESS時會出現相關提示,把LPCSTR類型的字符串自動轉換為CString。 除***步外,其余代碼均添加在OnInitDialog()中,在網上找了很多資料,但因資料繁雜,版本很多,且連接方法有很多種,所以看著不方便,。#t#
新建一個對話框應用程序,建一個ACESS數據庫命名為Demo.mdb,數據表名為Demo Table,數據表中記錄的字段值分別為Name,Age..將此數據庫放入剛才建的應用程序文件夾下。
1.在stdafx.h中加入
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2.在OnInitDialog()中初始化COM.
AfxOleInit();
3.創建Connection對象并連接數據庫
首先聲明一個_ConnectionPtr接口對象
_ConnectionPtr m_pConnection;
下面創建Connection對象實例及如何連接數據庫并進行異常捕捉。
- m_pConnection.CreateInstance(__uuidof(Connection));
- try
- {
- // 打開本地Access庫Demo.mdb
- m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
- }
- catch(_com_error e)
- {
- AfxMessageBox("數據庫連接失敗,確認數據庫Demo.mdb是否在當前路徑下!");
- return FALSE;
- }
4.利用_RecordsetPtr智能指針,來打開庫內數據表,并對表內的記錄、字段等進行各種操作。
- RecordsetPtr m_pRecordset;
- m_pRecordset.CreateInstance(__uuidof(Recordset));
- try
- {
- m_pRecordset->Open("SELECT * FROM DemoTable", // 查詢DemoTable表中所有字段
- m_pConnection.GetInterfacePtr(), // 獲取庫接庫的IDispatch指針
- adOpenDynamic,
- adLockOptimistic,
- adCmdText);
- }
- catch(_com_error *e)
- {
- AfxMessageBox(e->ErrorMessage());
- }
5.讀取表內數據。將表內數據讀出并顯示在編輯框中.
首先在對話框上添加兩個EDIT控件并添加變量m_name,m_age;添加代碼如下:
- variant_t var; //_variant_t是一種通用數據類型,里面可以放不同類型的數據。
- var = m_pRecordset->GetCollect("Name");
- if(var.vt != VT_NULL)
- m_name = (LPCSTR)_bstr_t(var);
- var = m_pRecordset->GetCollect("Age");
- if(var.vt != VT_NULL)
- m_age = (LPCSTR)_bstr_t(var);
- UpdateData(false);