網上好象這個例子還沒有樣,如果你用VC做一個人事部管理系統,不可能沒有人員照片吧!能找到的例子中都是用BMP,不敢用!
這個例子用到了VC6.0和access2002(officeXP),涉及到ADO的用法,文件對話框的使用,一個CPicture類和一個buffer緩沖區。
一、我的ADO用法整理
1. stdafx.h頭文件中加入:
#import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoEOF")
2. 應用程序初始化中加入:
AfxOleInit();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///創建Connection對象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=wy.mdb","","",adModeUnknown);///連接數據庫
///上面一句中連接字串中的Provider是針對ACCESS2000環境的,對於ACCESS97,需要改為:Provider=Microsoft.Jet.OLEDB.3.51;
}
}
catch(_com_error e)///捕捉異常
{
CString errormessage;
errormessage.Format("打開 wy.mdb 數據庫失敗!
錯誤信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///顯示錯誤信息
}
3. 應用程序EXIT中加入:
if (m_pConnection->State)
m_pConnection->Close();
4. 應用程序中加入:
_ConnectionPtr m_pConnection;
5. 對話框類中加入:
_RecordsetPtr m_pRecordset;
6. 注意使用:
extern CWYApp theApp;
7. 使用紀錄集:
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM 客戶 ORDER BY 客戶id",
_variant_t((IDispatch*)theApp.m_pConnection,true),
adOpenStatic,adLockOptimistic,adCmdText);
}
catch(_com_error e)///捕捉異常
{
AfxMessageBox("讀取數據庫失敗!");///顯示錯誤信息
}
CPicture類(它能夠顯示JPG.GIF等等圖片,詳情請看CPicture.h頭文件)
CPicture.h
CPicture.cpp