在C++ Builder中使用Access數(shù)據(jù)庫既可以在設(shè)計期實現(xiàn),也可以在運行期通過編程實現(xiàn)。下面就以一個簡單的例子,來說明在C++ Builder中如何使用Access數(shù)據(jù)庫。 在設(shè)計期使用Access數(shù)據(jù)庫 首先新建一個工程,保存單元文件為Unit1.cpp,保存工程文件為Project1.bpr。假設(shè)保存工程文件的路徑下已有一個Access數(shù)據(jù)庫文件student.mdb,下面需要為該數(shù)據(jù)庫創(chuàng)建一個別名。點擊C++ Builder的tools選單項,在下拉選單中點擊Database Desktop就進入了C++ Builder自帶的數(shù)據(jù)庫系統(tǒng)。然后在Database Desktop的tools項中選擇Alias Manager來為Access數(shù)據(jù)庫創(chuàng)建別名。創(chuàng)建別名的方法是:首先點擊“New”按鈕,然后在彈出對話框的Database alias欄內(nèi)為數(shù)據(jù)庫起一個別名,例如“mydatabase”,在Drive type欄選擇MSACCESS;在DATABASE NAME欄內(nèi)填入Access數(shù)據(jù)庫文件的路徑及文件名,其余項目可以根據(jù)需要填寫,然后點擊“OK”按鈕,會彈出一個是否保存別名設(shè)置的對話框,選擇“是”,這樣數(shù)據(jù)庫別名就創(chuàng)建完成了。 在表單Form1中放置一個TDatabase控件Database1,并設(shè)置以下屬性:AliasName屬性選擇已創(chuàng)建的別名“mydatabase”,DatabaseName屬性填寫一個應(yīng)用程序?qū)S玫膭e名,如“app_alias”(無需創(chuàng)建);Connected屬性選擇true,這時會彈出一個數(shù)據(jù)庫登錄對話框,如果未設(shè)用戶名和口令,則直接點擊“OK”,如果在創(chuàng)建別名時設(shè)有用戶名和口令,正確填寫后再點擊“OK”就可以連接數(shù)據(jù)庫了。 在表單Form1中增加一個TTable控件Table1并在DatabaseName屬性中填寫應(yīng)用程序的專用別名,本例為“app_alias”,TableName屬性中選擇一個需要的數(shù)據(jù)表名,Active屬性設(shè)為true。在表單Form1中增加一個TDataSource控件DataSource1,將其DataSet屬性設(shè)為Table1。再增加一個TDBGrid控件DBGrid1和TDBNavigator控件DBNavigator1,將它們的DataSource屬性都設(shè)為DataSource1,這樣就可以看到Access數(shù)據(jù)庫中的內(nèi)容了,并通過控件DBNavigator1可以對數(shù)據(jù)庫進行一些簡單的操作。如果要對數(shù)據(jù)庫進行更多的操作可以通過對Table1編程來實現(xiàn),在此不再贅述。在設(shè)計期使用Access數(shù)據(jù)庫簡單、快捷,但靈活性差一些。 在運行期使用Access數(shù)據(jù)庫 在運行期使用Access數(shù)據(jù)庫,在表單Form1中除了以上控件外,還需增加一個BDE會話期對象,即TSession控件Session1。將AutoSessionName屬性設(shè)為true,然后在Form1的OnCreate事件函數(shù)中加入以下代碼: AnsiString app_path,alias_1,name_1; app_path=ExtractFilePath(ParamStr(0)); //取得應(yīng)用程序的路徑 alias_1="mydatabase2"; //Access數(shù)據(jù)庫別名 name_1="DATABASE NAME="+app_path+"123.mdb"; if(!Session1->IsAlias(alias_1)) //數(shù)據(jù)庫別名不存在 { TStringListdataname=new TStringList(); dataname->Add(name_1); Session1->AddAlias(alias_1,"MSACCESS",dataname);//創(chuàng)建別名 delete dataname; Session1->Close(); } Database1->AliasName=alias_1; Database1->DatabaseName="app_alias"; Table1->DatabaseName=Database1->DatabaseName; Table1->TableName="xxys"; Table1->Active=true; 注意:在運行以上程序之前,別忘了進入BDE Administrator將MSACCESS驅(qū)動配置中的DLL32由IDDAO32.DLL改為IDDA3532.DLL,并保存這個配置。 為了使程序運行得更流暢,可以在Database1的OnLogin事件函數(shù)中加入以下代碼: LoginParams->Values["PASSWORD"]=""; LoginParams->Values["USERNAME"]=""; 這樣在運行程序時就不會彈出數(shù)據(jù)庫登錄的對話框了。 以上程序在Windows95操作系統(tǒng),C++ Builder 3下調(diào)試運行通過。 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!
掃一掃,關(guān)注站長網(wǎng)微信