新聞中心
隨著計算機(jī)的普及和開發(fā)工具的不斷完善,各類軟件的開發(fā)越來越容易實(shí)現(xiàn)。許多軟件在開發(fā)過程中需要使用到數(shù)據(jù)庫,而Access在小型數(shù)據(jù)管理方面表現(xiàn)突出,因此廣泛應(yīng)用于中小企業(yè)的辦公自動化系統(tǒng)等場合。本文將介紹VC編程中引入Access數(shù)據(jù)庫的實(shí)現(xiàn)方法。

目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、蟠龍網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
一、創(chuàng)建Access數(shù)據(jù)庫文件
在VC編程中引入Access數(shù)據(jù)庫的之一步是創(chuàng)建一個Access數(shù)據(jù)庫文件。打開Microsoft Access軟件,選擇新建一個空白數(shù)據(jù)庫,設(shè)置好名稱和保存位置后,再創(chuàng)建好表格和字段,如下圖所示。

二、VC項(xiàng)目設(shè)置
完成Access數(shù)據(jù)庫文件的創(chuàng)建后,可以開始設(shè)置VC項(xiàng)目引入數(shù)據(jù)庫的環(huán)境了。在VC項(xiàng)目中,宏定義_WIN32、WIN32、_WINDOWS、_CRT_SECURE_NO_WARNINGS等常見宏定義需要設(shè)定正確。在本次演示中,我們創(chuàng)建了一個MFC應(yīng)用程序,稱之為AccessDataBase。

三、添加頭文件和庫文件
在VC項(xiàng)目中引入Access數(shù)據(jù)庫需要包含ACESS.h等相關(guān)頭文件,以及鏈接數(shù)據(jù)庫需要用到的庫文件,如下圖所示。
“`c++
#include
#include
#pragma comment(lib,”MSADO15.lib”)
“`
四、創(chuàng)建Access數(shù)據(jù)庫連接
在VC項(xiàng)目中創(chuàng)建Access數(shù)據(jù)庫連接的具體代碼如下所示。其中變量dbpath是指Access數(shù)據(jù)庫文件的路徑,另外需要輸入對應(yīng)的密碼才能連接成功,否則會報錯。
“`c++
DWORD CAccessDataBaseDlg::MyAccessOpen()
{
m_db.Close();
CString dbpath = “..\\accesase\\access.mdbmdb”;
CString ConnectStr ;
ConnectStr.Format(_T(“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=%s;Persist Security Info=False”),dbpath);
//ConnectStr.Format(_T(“Driver={Microsoft dBASE Driver (*.dbf)};DBQ=%s”),dbpath);
CDataSource ds;
if (ds.Open(ConnectStr, 0, 0))
{
ds.OpenSession(ConnectStr);
HRESULT Hr=ds.GetLastError();
if(Hr!=S_OK)
{
AfxMessageBox(_T(“OpenSession fled”));
return 0;
}
ds.SetConnectTimeout(15);
DIALECT eDialect;
eDialect=dbUseODBC;
m_db.SetSource(&ds);
if(m_db.Open(_T(“1”),_T(“”), eDialect))
{
return 1;
}
else
return 0;
}
}
“`
五、數(shù)據(jù)庫操作代碼
在創(chuàng)建成功連接之后,就可以對Access數(shù)據(jù)庫進(jìn)行插入、修改、刪除等操作了。下面以插入數(shù)據(jù)為例,詳細(xì)介紹具體的操作。
“`c++
void CAccessDataBaseDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知處理程序代碼
if(MyAccessOpen())
{
try
{
CRecordset rs(&m_db); //定義記錄集
rs.Open(dbOpenDynaset,_T(“SELECT * FROM t_erjieben”),dbAppendOnly); // 打開表格
rs.AddNew();//在記錄集中添加新紀(jì)錄
m_nameCtrl.GetWindowText(m_name);
m_usernoCtrl.GetWindowText(m_userno);
m_orderCtrl.GetWindowText(m_order);
m_cmCtrl.GetWindowText(m_cm);
rs.m_name=m_name;
rs.m_userno=m_userno;
rs.m_order=m_order;
rs.m_translate=0;
rs.m_cm=m_cm;
rs.m_yanzaoshu=0;
rs.m_type=0;
rs.Update();//提交對記錄集的修改
rs.Close();//關(guān)閉記錄集
m_db.Close();//關(guān)閉數(shù)據(jù)庫連接
MessageBox(_T(“插入數(shù)據(jù)成功!”));
}
catch(CException* e)//異常處理
{
CString errMsg;
e->GetErrorMessage(errMsg.GetBuffer(512),512);
MessageBox(errMsg);
e->Delete();//釋放空間
rs.Close();
}
}
}
“`
相關(guān)問題拓展閱讀:
- 我用VC++做系統(tǒng),ACCESS2023作為數(shù)據(jù)庫,其中命令按鈕增加記錄代碼怎么寫?
我用VC++做系統(tǒng),ACCESS2023作為數(shù)據(jù)庫,其中命令按鈕增加記錄代碼怎么寫?
使用的命令不對,給你一個例子,照襲液叢著做就行了
_ConnectionPtr _pConnection; //ADO數(shù)據(jù)庫拍櫻連接指針
_RecordsetPtr _pRecordset; //ADO數(shù)據(jù)庫記錄集
CString strSQL;
strSQL.Format(“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=RULES.mdb;Jet OLEDB:Database Password=zc”);
try
{
_pConnection->Open(strSQL.AllocSysString(), “”, “”, adModeUnknown);
}
catch (_com_error e)
{
CString strError;
strError.Format(“警告:連接規(guī)則庫失敗埋此!錯誤信息15:%s”, e.ErrorMessage());
AfxMessageBox(strError);
return;
}
//打開記錄集
strSQL.Format(“select * from DIAGMATRIX”);
try
{
_pRecordset->Open(strSQL.AllocSysString(), _pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch (_com_error e)
{
CString strError;
strError.Format(“警告:打開規(guī)則庫時發(fā)生異常!錯誤信息18:%s”, e.ErrorMessage());
AfxMessageBox(strError);
return;
}
//將當(dāng)前數(shù)據(jù)添加到數(shù)據(jù)庫文件中
try
{
for (i=0;iAddNew();
//填充新記錄的各字段
for (j=0;jPutCollect(_variant_t(strArrayFault), _variant_t(str));
}
//更新數(shù)據(jù)
_pRecordset->Update();
//將記錄集指針移至未尾
_pRecordset->MoveLast();
}
}
catch (_com_error e)
{
CString strError;
strError.Format(“警告:打開規(guī)則庫時發(fā)生異常!錯誤信息19:%s”, e.ErrorMessage());
AfxMessageBox(strError);
return;
}
//關(guān)閉記錄集和連接
_pRecordset->Close();
關(guān)于vc 編 access數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁設(shè)計制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
當(dāng)前標(biāo)題:VC編程引入Access數(shù)據(jù)庫的實(shí)現(xiàn)方法 (vc 編 access數(shù)據(jù)庫)
路徑分享:http://m.fisionsoft.com.cn/article/cdcphho.html


咨詢
建站咨詢
