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