国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Access > 正文

直接通過DAO讀寫Access文件

2020-03-24 16:48:22
字體:
供稿:網(wǎng)友
源碼下載直接利用DAO來創(chuàng)建、讀寫Access文件,總的說來,對比上篇《直接通過ODBC讀、寫Excel文件》來講,要簡單一些。在下面的示例中,我們將用到兩種方法:SQL和DAO類函數(shù)來混合實現(xiàn)它們,這樣做的目地,我想可以使大家更加方便靈活的運用它們來完成你想要做的東西。在示例程序中默認(rèn)指定創(chuàng)建數(shù)據(jù)庫名為:Demo.mdb,內(nèi)部表名為:DemoTable,寫入兩個字段:名字和年齡,采用和上一篇讀寫Excel類似的操作,你也可以根據(jù)自己需要來動態(tài)改變它們。示例程序運行界面如下所示:

下面讓我們來簡要看看它的實現(xiàn)步驟: 1. 首先,應(yīng)確保包含進了afxdao.h頭文件,可以在StdAfx.h文件中包含它,如下: #include afxdao.h //加入DAO數(shù)據(jù)庫支持 2. 聲明DAO庫及其記錄集變量,可在你的實現(xiàn)文件中加入下面代碼: CDaoDatabase db; //數(shù)據(jù)庫
CDaoRecordset RecSet( db); //記錄集3. 接著,先讓我們來實現(xiàn)它的創(chuàng)建及寫入操作void CRWAccessDlg::OnWriteAccess()
{
//獲取主程序所在路徑,存在sPath中
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind (''//'');
sPath=sPath.Left (nPos);
//默認(rèn)創(chuàng)建數(shù)據(jù)名:Demo.mdb,內(nèi)部表名:DemoTable,表內(nèi)有二個字段:姓名、年齡
CString lpszFile = sPath + "http://Demo.mdb";

CFileFind fFind;
BOOL bSuccess;
bSuccess=fFind.FindFile(lpszFile);
fFind.Close ();
//是否已有創(chuàng)建好的Demo.mdb文件,沒有則創(chuàng)建它
if(!bSuccess)
{
db.Create(lpszFile);
CString SqlCmd = "CREATE TABLE DemoTable(Name VARCHAR(20),Age VARCHAR(3));";
db.Execute(SqlCmd);

//打開已創(chuàng)建的數(shù)據(jù)表
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,
"SELECT * FROM DemoTable", 0);
//加入第一個記錄,用SQL語句
db.Execute("INSERT INTO DemoTable (Name,Age) VALUES (''徐景周'',26)");

//加入第二個記錄,用DAO涵數(shù)
RecSet.AddNew();
RecSet.SetFieldValue("Name","徐志慧");
RecSet.SetFieldValue("Age","21");
RecSet.Update();

//加入第三個記錄,用DAO涵數(shù)
RecSet.AddNew();
RecSet.SetFieldValue("Name","郭徽");
RecSet.SetFieldValue("Age","27");
RecSet.Update();

//關(guān)閉記錄集及庫
RecSet.Close();
db.Close();
AfxMessageBox("Access文件寫入成功!");
}
else
AfxMessageBox("Demo.mdb數(shù)據(jù)庫已經(jīng)創(chuàng)建!");

}4. 最后,讓我們來實現(xiàn)它的讀取操作。void CRWAccessDlg::OnReadAccess()
{
COleVariant var; // 字段類型
var.ChangeType(VT_BSTR, NULL);
CString strName,strAge,strFile;
//清空列表框
m_AccessList.ResetContent();
//獲取主程序所在路徑,存在sPath中
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind (''//'');
sPath=sPath.Left (nPos);
strFile = sPath + "http://demo.mdb";
db.Open(strFile); // 打開已創(chuàng)建的demo數(shù)據(jù)庫及DamoTable表
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DemoTable",NULL);
while(!RecSet.IsEOF()) // 有沒有到表結(jié)尾
{
RecSet.GetFieldValue("Name",var);
strName = (LPCSTR)var.pbstrVal;
RecSet.GetFieldValue("Age",var);
strAge = (LPCSTR)var.pbstrVal;
m_AccessList.AddString( strName + " -- "+strAge );
RecSet.MoveNext();
}
//關(guān)閉記錄集及庫
RecSet.Close();
db.Close();
}以上部分代碼的具體實現(xiàn)的細(xì)節(jié)問題,可在下載實例代碼后,仔細(xì)查看源碼既可(內(nèi)有詳細(xì)注釋)。
本文作者:html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍林郭勒市| 洛隆县| 清原| 新乐市| 子洲县| 阳朔县| 什邡市| 大宁县| 洛川县| 将乐县| 竹山县| 宁都县| 闸北区| 桐庐县| 桐城市| 仙游县| 江门市| 繁昌县| 武功县| 金堂县| 拜泉县| 庆阳市| 江西省| 大新县| 汉阴县| 贵南县| 全州县| 松潘县| 宕昌县| 二连浩特市| 高台县| 托里县| 宁南县| 濮阳市| 乐清市| 兴安县| 平利县| 丁青县| 汽车| 淳安县| 正定县|