999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB中數據庫訪問技術的應用研究

2014-09-02 09:44:08王素芳
科技視界 2014年12期
關鍵詞:數據庫模型

王素芳

(廣東白云學院 電氣與信息工程學院,廣東 廣州 510430)

0 引言

自Visual Basic 3.0開始,Visual Basic就具有數據庫連接和數據處理功能。在Visual Basic 6.0版中,數據庫功能得到了空前的增強。Microsoft公司把許多新的數據訪問功能加到Visual Basic中,使得該產品成為數據庫應用程序開發的理想平臺。Visual Basic提供了眾多功能各異的數據控件,利用這些控件,用戶只要編寫少量代碼甚至不編寫任何代碼就可以訪問數據庫,對數據庫進行瀏覽及其他操作。Visual Basic還提供了幾種不同的數據庫對象模型,以實現對面向不同應用的數據庫的全面處理,利用這些模型中的一種或者幾種,可以對幾乎所有種類的數據庫進行操作。

1 VB中的數據庫訪問技術

VB中將數據庫分為了3種類型:

(1)本地數據庫:主要指Microsoft Access數據庫。

(2)外部數據庫:是指采用 ISAM (Indexed Sequential Access Method,索引順序訪問方法)的數據庫,比如 dBase、Foxpro、Paradox 和Excel等。

(3)遠程數據庫:指 SQL Server、Oracle、DB2 等大型數據庫,當前的大型數據庫應用程序基本上都是以這類數據庫為后臺。

1.1 通過VB訪問數據庫

VB可通過不同的方式與目前較為流行的大多數數據庫進行連接。

傳統的連接方法主要有JET數據庫引擎 (JET)、Microsoft ODBC(Open Database Connectivity,開放式數據庫連接)驅動程序、OLE DB。

(1)Jet引擎:聯合數據庫引擎,是Microsoft公司開發的用于本地數據庫(比如 Access)、外部數據庫(比如 dBase、Excel、Paradox)的數據庫引擎。它也可以訪問遠程數據庫(比如SQL Server、Oracle),但必須通過ODBC來轉接。

(2)ODBC:開放式數據庫連接,是一種建立數據庫驅動程序的標準,當前幾乎所有的DBMS都支持這種數據庫引擎。ODBC是在數據庫和應用程序之間提供的一個抽象層,即通過驅動程序和游標庫來和數據庫進行通信。這樣,通過ODBC就可以使用本地化的協議來訪問所有支持ODBC的數據庫了。

(3)OLE DB:微軟公司于1996年提出了一種新的數據庫訪問策略UDA (Universal Data Access),它的核心是一系列組件對象模型(COM)接口,被命名為OLE DB。這些接口允許開發人員創建數據庫提供者(Data Providers)。數據提供者能夠很靈活地表達各種格式存儲的數據,通用性比ODBC更好、更靈活。

1.2 VB中訪問數據庫的常用技術

VB集成開發環境提供的數據庫訪問技術主要有DAO、ODBC API、RDO和ADO等。目前的主流技術是ADO技術。

(1)DAO

數據訪問對象 (Data Access Object)DAO方式是允許程序員操作Microsoft Jet數據庫引擎的第一個面向對象的接口。Jet數據庫引擎是一種用來訪問Microsoft Access和其它數據源的記錄和字段的技術。DAO訪問SQL Server數據庫有兩種不同的對象模型可供選擇:一種對象模型是通過Jet引擎來訪問數據;另一種是通過ODBC Direct來訪問數據。這兩種對象模型都是層次結構的。使用DAO的程序編碼非常簡單,其模型是設計關系數據庫系統結構的對象類的集合,它們提供了完成管理這樣一個系統所需的全部操作的屬性和方法。

(2)ODBC API

用ODBC API編程開放數據庫連接ODBC(Open Database Connectivity)的思想是訪問異種數據庫的一種可移植的方式。ODBC API是一套復雜的函數集,可提供一些通用的接口,以便訪問各種后臺數據庫,與數據資源對話的公用函數組裝在一個稱為驅動程序管理器(ODBC.DLL)的動態連接庫中。應用程序調用驅動程序管理器中的函數,而驅動程序管理器通過驅動器(SQL Server.DLL)把它們送到服務器中。

(3)RDO

遠程數據對象(Remote Data Object)RDO方式是提供給開放數據庫互連(ODBC)數據源的面向對象的接口。RDO是位于ODBC API之上的一個對象模型層,它依賴ODBC API、ODBC驅動程序以及后端數據庫引擎來實現,用RDO所編的程序短小、快速。RDO是開發Microsoft SQL Server,Oracle和其它大型關系數據庫應用程序的絕大多數數據庫開發者使用的對象模型。與DAO相比,RDO提供了前所未有的連接和查詢速度,但它對SQL Server和Oracle以外的數據庫的存取性能沒有保證,微軟已經推薦使用ADO替換RDO。

(4)ADO

為了克服DAO和RDO的缺點,提供一種統一的數據庫訪問技術,Microsoft提出了ADO技術。ADO是應用層的編程接口,它封裝并實現了OLE DB(Object Linked and Embed Database,對象鏈接與嵌入式數據庫)的所有功能,在繼承OLE DB的同時,大大簡化了OLE DB的操作。它通過OLE DB提供的COM接口訪問數據,可訪問各種類型的數據源,既適合于SQL Server、Oracle、Access等數據庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數據文件。ADO主要采用OLE DB訪問數據庫,也支持ODBC訪問,但需要經過OLE DB轉接。

2 ADO技術

2.1 ADO模型

ADO是Microsoft公司提出的第三種數據庫訪問對象,是Microsoft數據庫訪問技術的一個主要發展方向,它把OLE DB封裝在一個數據對象中,使得VB程序可以方便地實現對數據庫的訪問。

ADO與其他對象模型的主要區別在于它的簡單和非層次結構。這種對象模型共包含7個對象,即Connection、Command、Recordset、Parameter、Property、Field 和 Error。其中最常用的是Connection、Command、Recordset和Field 4個對象。它們的具體功能是:

(1)Command對象:包含關于某個命令(如查詢字符串,參數定義等)信息。

(2)Connection對象:包含某個數據提供程序的信息。

(3)Error對象:包含數據提供程序出錯時的擴展信息。

(4)Property對象:包含某個ADO對象的提供程序定義的特征。

(5)Parameter對象:包含參數化的Command對象的某單個參數的信息,該Command對象有一個包含其所有Parameter對象Parameters集合。

(6)Recordset對象:包含某個查詢返回的記錄,以及記錄中的游標。Recordset對象只代表一個記錄集,這個記錄集是一個連接的數據庫中的表,或者是Command對象的執行結果返回的記錄集。在ADO對象模型中,在行中檢查和修改數據是最主要的方法,所有對數據的操作幾乎都是在Recordset對象中完成的。Record對象用于指定行、移動行、添加、更改、刪除記錄。

(7)Field對象。包含記錄集中數據的某單個列的信息。

2.2 使用ADO技術訪問數據庫

使用ADO技術訪問數據庫有三種方法∶使用ADO數據控件、使用ADO對象、通過SQL語句訪問數據庫。使用ADO數據控件可以使用戶很方便地不用編程或編寫很少的代碼就可以訪問數據庫數據。使用ADO對象可以實現更復雜、更靈活的數據訪問。由于ADO不具有顯示數據的功能,因此要將數據操作結果在用戶界面上顯示出來,就要靠數據綁定控件來實現。

2.2.1 ADO數據控件

ADO數據控件支持OLE DB數據訪問模型,既可以訪問Oracle、SQL Server等大型關系型數據庫管理系統,也可以訪問Access、FoxPro等小型桌面數據庫管理系統,還可以訪問文本數據、郵件數據、圖形數據等。因此說,使用ADO數據控件幾乎可以訪問各種類型的數據源。ADO數據控件的名稱為“Adodc”,它是一個ActiveX控件,必須手工添加到工具箱中才能使用。在“部件”對話框的“控件”選項卡中選中“Microsoft ADO Data Control 6.0(OLE DB)”復選框即可添加Adodc控件到工具箱。ADO數據控件的主要屬性有∶

1)ConnectionString 屬性

ConnectionString屬性用于建立到數據源的連接,它指定連接到數據源的OLE DB數據訪問接口和具體的數據庫文件。不同的數據源要使用不同的OLE DB數據訪問接口,由ConnectionString屬性的Provider參數指定所用的OLE DB接口;由ConnectionString屬性的Data Source參數指定具體的數據庫文件;另外,還可以指定連接數據庫的用戶名和密碼等信息。下面給出連接到Access數據庫student.mdb實例∶

Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& App.Path&"student.mdb;Persist Security Info=False"

2)CommandType 屬性

CommandType屬性指明命令的類型,即要訪問的數據的具體來源。這個屬性要和RecordSource屬性配合使用。

3)RecordSource 屬性

RecordSource屬性設置ADO記錄集的內容,這個內容可以來自數據庫中的一張表、一個查詢語句或者來自一個存儲過程的執行結果。如果CommandType屬性的取值為adCmdTable,則RecordSource屬性的內容是一個表名,ADO記錄集是對此表無條件查詢得到的結果;如果CommandType屬性的取值為adCmdText,則RecordSource屬性的內容是一個查詢語句文本串,ADO記錄集是執行此查詢語句文本產生的結果;如果CommandType屬性的取值為 adCmdStoredProc,則RecordSource屬性的內容是一個存儲過程名,ADO記錄集執行此存儲過程產生的結果;CommandType屬性的默認值為adCmdUnknown,表示RecordSource屬性中的命令類型未知。

4)Recordset屬性

Recordset屬性又稱為記錄集,它本身又是一個對象。VB應用程序一般就是通過記錄集來操作數據庫的,所以記錄集是VB應用程序和數據庫之間相互連接的橋梁。在訪問數據庫的時候,設置好ConnectionString屬性、CommandType屬性和Record-Source屬性后,執行RecordSource屬性的結果就放在Recordset中。

ADO數據控件最重要的方法是Refresh。Refresh方法用于更新ADO數據控件屬性,使修改后的ADO數據控件屬性生效。所以當改變了ADO數據控件屬性后就要執行Refresh方法。

2.2.2 外部數據綁定控件

要將數據操作結果顯示出來要使用數據綁定控件。VB中的TextBox、CheckBox、ComboBox、ListBox等標準控件都是數據綁定控件,但是這些標準控件只能顯示記錄集中一個列的值。除了這些標準控件外,還有一些ActiveX控件也可以實現數據綁定功能,這些控件稱為外部數據綁定控件。常見的外部數據綁定控件有DataCombo、DataList、DataGrid、MSHFGrid、MSFlexGrid等,這些外部數據綁定控件提供了比標準控件更加強大的功能,比如有些控件能顯示記錄集的全部內容。

以DataGrid控件為例來看外部數據綁定控件的用法。下面給出一個實例,這個例子使用ADO數據控件從student.mdb數據庫的student表中查詢所有sex="女"的記錄的學號和姓名,再使用外部數據綁定控件DataGrid把學號和姓名顯示出來∶

Private Sub Command1_Click()

Adodc1.Visible=False

DataGrid1.AllowAddNew=False

DataGrid1.AllowUpdate=False

DataGrid1.AllowDelete=False

DataGrid1.Caption="女生信息"

Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& App.Path& "student.mdb;Persist Security Info=False"

Adodc1.CommandType=adCmdText

Adodc1.RecordSource="select xh,xm from student where sex="女"

Adodc1.Refresh

Set DataGrid1.DataSource=Adodc1

DataGrid1.Refresh

DataGrid1.Columns.Item(0).width=1200

DataGrid1.Columns.Item(1).width=1200

DataGrid1.Columns.Item(0).Caption="學號"

DataGrid1.Columns.Item(1).Caption="姓名"

End Sub

2.2.3 通過SQL語句訪問數據庫

在VB應用程序中主要用這個對象建立與數據庫的連接,一般的方法是:

(1)聲明并創建對象

Dim ADOcn As Connection’聲明對象

Set ADOcn=New Connection’創建新對象,或將上述兩條語句直接寫成:

Dim ADOcn As New Connection。

(2)建立數據庫連接

一般通過下列語句完成與數據庫(源)的連接:ADOcn.Open連接字符串。

(3)對數據表進行更新操作

可以利用Connection對象對數據庫中的基本表進行增加、刪除、修改等不返回結果集的操作,語法如下:ADOcn.Execute SQL語句。

3 結束語

VB的數據庫訪問技術,歷經了DAO、RDO、ADO等重要階段。ADO是DAO/RDO的后繼產物,盡管Visual Basic 6.0仍然支持DAO和RDO兩種數據訪問接口,但其核心與重點已經轉移到ADO/OLEDB數據訪問技術上。ADO作為最新的數據庫訪問模式它具有功能強、通用性好、效率高、占空間少等特點。ADO數據控件易于掌握、代碼短小,但是程序靈活性較差,而ADO對象功能強大、靈活性好,在具體開發的時候要靈活運用這兩種方法。我們在實際開發中,對數據庫的操作更適合采用對象模型編程方式,以便更靈活地對數據庫進行操作。

[1]黃玉春.Visual Basic程序設計與實訓教程[M].北京:清華大學出版社,2006.

[2]祝旭.VB訪問數據庫的三種技術[J].湖南工業職業技術學院學報,2010(8)∶8-9.

[3]吳青林,王焱.VB中ADO訪問數據庫技術探討[J].軟件導刊,2010(2)∶151-152.

[4]陳英.Visual Basic程序設計教程[M].大連理工大學出版社,2007.

[5]李志偉.VB環境下基于ADO的Oracle數據庫訪問[J].電腦開發與應用,2009(09)∶60-62.

[6][美]Grey perry.學用 Visualbaisc6.0[M].戴紅,陳吉吉,姚娜,譯.清華大學出版社.

猜你喜歡
數據庫模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 波多野结衣一二三| 色妞www精品视频一级下载| 国产午夜在线观看视频| 久久免费视频播放| 久久女人网| 久久亚洲国产最新网站| 伊人蕉久影院| 高清无码一本到东京热| 国产鲁鲁视频在线观看| 亚洲视频色图| 日本国产精品一区久久久| 中文字幕色在线| 欧美一区福利| 亚洲综合精品香蕉久久网| 美女无遮挡拍拍拍免费视频| 国产精品成人啪精品视频| 免费 国产 无码久久久| 五月婷婷激情四射| 激情五月婷婷综合网| 久草中文网| 国产人成网线在线播放va| 人人91人人澡人人妻人人爽 | 成人午夜久久| 天堂成人av| 最新国产午夜精品视频成人| 欧美日在线观看| 午夜福利视频一区| 久久精品66| 色妺妺在线视频喷水| AV不卡国产在线观看| 白浆视频在线观看| 国产成+人+综合+亚洲欧美| 综合亚洲网| 亚洲精品男人天堂| 日韩人妻精品一区| 一级片一区| 青青青伊人色综合久久| 国产一区二区影院| 亚洲免费成人网| 成人在线不卡视频| 性欧美久久| 国产成人亚洲精品蜜芽影院| 老司机精品99在线播放| 久久国产精品77777| 在线观看91香蕉国产免费| 国产自在线拍| 思思热在线视频精品| 国产欧美日韩va| 国产区免费| 欧美高清日韩| 亚洲综合香蕉| 亚洲天堂视频在线免费观看| 十八禁美女裸体网站| 久热这里只有精品6| 久草热视频在线| 国产乱子伦精品视频| 精品自拍视频在线观看| 国产乱论视频| 国产精品欧美日本韩免费一区二区三区不卡| 欧美一级色视频| 一级毛片高清| 国产精品性| 91亚洲视频下载| 亚洲国产精品国自产拍A| 欧美亚洲国产精品第一页| 亚洲国产精品一区二区第一页免 | 欧美翘臀一区二区三区| 亚洲一级毛片免费看| 黄色网在线| 55夜色66夜色国产精品视频| 激情亚洲天堂| 久久网综合| 91最新精品视频发布页| 久久免费成人| 成人国产一区二区三区| 特级做a爰片毛片免费69| 亚洲精品无码不卡在线播放| 福利视频久久| 久久熟女AV| 国产视频大全| 欧美日韩国产在线人成app| 日韩精品久久无码中文字幕色欲|