摘要:主要針對(duì)當(dāng)前廣泛應(yīng)用的VB程序設(shè)計(jì)語(yǔ)言對(duì)數(shù)據(jù)庫(kù)開(kāi)發(fā)的支持,討論了ADO數(shù)據(jù)對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)的方法。
關(guān)鍵詞:VB;ADO對(duì)象
中圖分類號(hào):TP30文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2008)19-30011-02
Applying ADO Data Object to Accessing Database in VB
WANG Peng-yu
(Hebi College of Vocation and Technology,Hebi458030, China)
Abstract: At present, VB program design language is widely applied in database development. This article is mainly on the methods of ADO data object in accessing database.
Key words: VB; ADO
ADO(ActiveX Data Object)是當(dāng)前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),它提供了對(duì)OLE DB數(shù)據(jù)源的數(shù)據(jù)庫(kù)應(yīng)用程序級(jí)的訪問(wèn)功能。目前,許多C/S結(jié)構(gòu)或B/S結(jié)構(gòu)開(kāi)發(fā)技術(shù)都支持ADO,使得應(yīng)用開(kāi)發(fā)模式統(tǒng)一到單一的ADO對(duì)象上來(lái)。ADO不僅支持本地?cái)?shù)據(jù)源,而且具有遠(yuǎn)程數(shù)據(jù)服務(wù)功能,通過(guò)遠(yuǎn)程數(shù)據(jù)服務(wù)功能,可實(shí)現(xiàn)服務(wù)器到客戶端或Web網(wǎng)頁(yè)之間的數(shù)據(jù)傳送。
與ADO Data控件類似,ADO對(duì)象用Connection對(duì)象選擇數(shù)據(jù)庫(kù)的類型與數(shù)據(jù)庫(kù),用Command對(duì)象與Recordset對(duì)象選擇數(shù)據(jù)表與記錄集,從而實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)表記錄的處理。所不同的是,ADO Data是一個(gè)可視的控件,數(shù)據(jù)界面控件可通過(guò)其DataSource屬性與ADO Data控件綁定,從而獲取數(shù)據(jù)表中的記錄數(shù)據(jù)。而ADO對(duì)象是用ADO模型中的類定義的對(duì)象,是通過(guò)編寫(xiě)程序代碼實(shí)現(xiàn)ADO對(duì)象與數(shù)據(jù)庫(kù)、數(shù)據(jù)表、數(shù)據(jù)記錄的連接。
1 ADO對(duì)象模型
■
圖1 ADO對(duì)象模型
2 用連接對(duì)象打開(kāi)數(shù)據(jù)庫(kù)
連接對(duì)象是用Connection類定義的對(duì)象,用于選擇數(shù)據(jù)庫(kù)類型、驅(qū)動(dòng)程序與數(shù)據(jù)庫(kù),設(shè)置用戶安全信息等,因此在使用連接對(duì)象打開(kāi)數(shù)據(jù)庫(kù)之前,必須先定義連接對(duì)象,然后才能用連接對(duì)象建立與數(shù)據(jù)庫(kù)的連接。
2.1 定義連接對(duì)象
Dim <連接對(duì)象> As New ADODB.Connection
2.2 連接對(duì)象的屬性和方法
(1)ConnectionString屬性是一個(gè)連接數(shù)據(jù)庫(kù)的字符串,用于提供數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序、路徑、數(shù)據(jù)庫(kù)名、用戶名、口令與安全等連接信息。
ConnectionString屬性設(shè)置格式如下:
<連接對(duì)象>. ConnectionString =\" DRIVER={SQL SERVER};SERVER=ServerName;UID=UserName;PWD=Password;DATABASE=DatabaseName\"
(2)CommandTimeout屬性用于限制連接數(shù)據(jù)庫(kù)時(shí)間,屬性賦值格式如下:
<連接對(duì)象>.CommandTimeout=連接時(shí)間
(3)Open方法用于打開(kāi)數(shù)據(jù)庫(kù),其調(diào)用格式如下:
<連接對(duì)象>.Open [ConnectionString],[User ID],[Password]
說(shuō)明:若連接對(duì)象的ConnectionString屬性已賦值,則[ConnectionString],[User ID],[Password]可省略。
(4)Close方法用于關(guān)閉數(shù)據(jù)庫(kù),其調(diào)用格式如下:<連接對(duì)象>.Close
3 用記錄集對(duì)象操作數(shù)據(jù)表
記錄集對(duì)象是用RecordSet類定義的對(duì)象,然后用記錄集對(duì)象的Open方法打開(kāi)數(shù)據(jù)表,并對(duì)數(shù)據(jù)表中記錄指針進(jìn)行移動(dòng),用Addnew、Delete、Update方法可添加、刪除、修改記錄。完成對(duì)數(shù)據(jù)表的操作。
3.1 定義記錄集對(duì)象
Dim <記錄集對(duì)象> As New ADODB.Recordset
3.2 記錄集對(duì)象的方法
3.2.1 記錄集對(duì)象的Open方法
<記錄集對(duì)象>.Open [Source] [ActiveConnection],[CursorType],[LockType],[Option]
各參數(shù)含義如下:
(1)Source:數(shù)據(jù)表或Select語(yǔ)句,用于選擇指定的數(shù)據(jù)表。
(2)ActiveConnection:連接對(duì)象,用于連接數(shù)據(jù)表所在的數(shù)據(jù)庫(kù)。
(3)CursorType:游標(biāo)類型。
(4)LockType:記錄加鎖。
(5)Option:選項(xiàng)。
3.2.2 記錄集對(duì)象的增、刪、改方法
(1)Addnew方法:添加記錄;
(2)Delete方法:刪除記錄;
(3)Update方法:修改記錄。
3.2.3 記錄集對(duì)象的指針移動(dòng)方法
(1)MoveFirst方法:將記錄指針移到首條記錄;
(2)MovePrevious方法:將記錄指針上移一條記錄;
(3)MoveNext方法:將記錄指針下移一條記錄;
(4)MoveLast方法:將記錄指針移到最后一條記錄;
(5)Move n方法:將記錄指針移動(dòng)n條記錄,當(dāng)n>0向下移,當(dāng)n<0向上移。
3.2.4 記錄集對(duì)象的關(guān)閉方法Close
當(dāng)記錄集對(duì)象使用完畢后,應(yīng)用Close方法關(guān)閉記錄集對(duì)象,回收為記錄集對(duì)象分配的內(nèi)存空間。
4 用命令對(duì)象操作數(shù)據(jù)表
命令對(duì)象是用Command類定義的對(duì)象,用于存放SQL命令或存儲(chǔ)過(guò)程,執(zhí)行SQL命令或存儲(chǔ)過(guò)程后可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中指定數(shù)據(jù)表記錄的查詢、插入、替換與刪除等操作。當(dāng)要執(zhí)行帶有動(dòng)態(tài)參數(shù)的Command命令時(shí),需要使用參數(shù)對(duì)象(Parameter)。
4.1 定義命令對(duì)象
命令對(duì)象的定義格式為:Dim <命令對(duì)象> As New ADODB.Command
4.2 命令對(duì)象的屬性
(1)ActiveConnection屬性:用于選擇連接對(duì)象,使命令對(duì)象與數(shù)據(jù)庫(kù)連接。
(2)CommandType屬性:用于確定命令類型。
(3)CommandText屬性:根據(jù)命令類型存放“數(shù)據(jù)表名”、“ SQL語(yǔ)句”、“存儲(chǔ)過(guò)程名”、“文件名”等內(nèi)容。
(4)CommandTimeout屬性:用于限制命令執(zhí)行時(shí)間。
4.3 命令對(duì)象的方法
Execute方法:用于執(zhí)行命令,相當(dāng)于Adodc控件的Refresh方法
5 程序示例
用ADO的三個(gè)對(duì)象完成下列工作:用連接對(duì)象打開(kāi)數(shù)據(jù)庫(kù)student;用記錄集對(duì)象打開(kāi)院系編碼表(dept_code);用命令對(duì)象執(zhí)行“刪除院系編碼為 '07' 的院系信息”的命令。
5.1 定義ADO的三個(gè)對(duì)象
Dim Con As New ADODB.Connection
Dim Cmd As New ADODB.Command
Dim Rs As New ADODB.Recordset
5.2 配置Connection對(duì)象的連接屬性并打開(kāi)連接
Con.ConnectionString = \" DRIVER={SQL SERVER};SERVER=127.0.0.1;UID=sa;PWD=;DATABASE=student\"
Con.Open
5.3 打開(kāi)RecordSet對(duì)象
Rs.Open \"Select * From dept_code\",Con
5.4 配置Command對(duì)象的連接屬性和命令語(yǔ)句,最后執(zhí)行
Cmd.ActiveConnection = Con
Cmd.CommandType = adCmdText
Cmd.CommandText = \"Delete From dept_codeWhere deptcode='07'\"
Cmd.Execute
參考文獻(xiàn):
[1] 柳青,劉渝妍,何文華.Visual Basic程序設(shè)計(jì)教程[M].北京:高等教育出版社,2002,2.
[2] 劉鳳聲.VB中用ADO對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)編程方法分析[J]. 微型電腦應(yīng)用,2005,21(1):51-53.
[3] 陳裕文.用ADO和SQL開(kāi)發(fā)VB數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)[J].現(xiàn)代計(jì)算機(jī),2007(5):99-101.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文