亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        在VB中用ADO實現(xiàn)數(shù)據(jù)庫訪問

        2009-03-30 06:51:50
        合作經(jīng)濟與科技 2009年8期

        李 靜

        提要本文介紹了Visual Basic數(shù)據(jù)庫訪問技術發(fā)展的歷史,詳細闡述了利用ADO以非編程方式及編程方式實現(xiàn)數(shù)據(jù)庫訪問的方法。

        關鍵詞:VB;ADO;ADO Data控件;ADO對象模型

        中圖分類號:F407.67文獻標識碼:A

        Visual Basic作為一種面向對象的可視化編程工具,具有簡單易學、靈活方便和易于擴充的特點,并且支持一套出色的數(shù)據(jù)庫訪問技術。Microsoft為其提供了與SQL Server通信的API函數(shù)集及工具集,因此它越來越多地用作前臺應用程序的開發(fā),與后臺的Microsoft SQL Server相結合,從而提供一個高性能的客戶機-服務器方案。

        一、VB數(shù)據(jù)庫訪問技術的發(fā)展

        早期的Visual Basic數(shù)據(jù)訪問工具是簡單的ASCII文件訪問工具,極少數(shù)SQL Server 的前端應用程序是數(shù)據(jù)接口VBSQL編寫的。在Visual Basic 3.0時代,許多用戶強調(diào)轉移包含遠程數(shù)據(jù)源的ISAM(Indexed Sequential Access Method,索引順序存取法)數(shù)據(jù),為此Microsoft設計了Microsoft Jet Database Engine(或簡稱為Jet)和DAO(Data Access Object),使得Visual Basic Access開發(fā)人員很容易地同Jet接口,其操作針對記錄和字段,主要用于開發(fā)單一的數(shù)據(jù)庫應用程序。隨著使用者需求的不斷改變,Visual Basic又包含了更快的訪問遠程數(shù)據(jù)和對ODBC數(shù)據(jù)源訪問的優(yōu)化,出現(xiàn)了新的數(shù)據(jù)庫接口RDO(Remote Data Object),它是訪問關系型ODBC數(shù)據(jù)源的最佳界面接口,其操作針對行和列。ADO(ActiveX Data Objects)作為另一種可供選擇的技術出現(xiàn),正在逐漸代替其他數(shù)據(jù)訪問接口。ADO比DAO和RDO具有更好的靈活性,更易使用,實現(xiàn)的功能也更全面。

        二、ActiveX數(shù)據(jù)對象ADO

        ADO是一種用于開發(fā)訪問OLE DB數(shù)據(jù)源應用程序的API,是Visual Basic中新的數(shù)據(jù)訪問標準。ADO提供了更為高級的易于理解的訪問機制,具有更加簡單、更加靈活的操作性能。ADO訪問數(shù)據(jù)是通過OLE DB來實現(xiàn)的,OLE DB不僅能夠以SQL Server、Oracle、Access等數(shù)據(jù)庫文件為訪問對象,還可對Excel表格、文本文件、圖形文件、電子郵件等各種各樣的數(shù)據(jù)通過統(tǒng)一的接口進行存取。ADO集中了DAO和RDO的優(yōu)點,是DAO、RDO的后繼產(chǎn)物而且不像DAO和RDO那樣依賴于對象層次。ADO對象模型定義了一個可編程的分層對象集合,主要由七個對象成員Connection、Command、Recordset、Error、Parameter、Field和Property以及四個集合對象Errors、Parameters、Fields、Properties所組成。每個 Connection、Command、Recordset和Field對象都有Properties集合。

        三、ADO數(shù)據(jù)庫訪問技術的應用

        在VB中,使用ADO訪問數(shù)據(jù)庫主要有兩種方式,一種是使用ADO Data控件,通過對控件的綁定來訪問數(shù)據(jù)庫中的數(shù)據(jù),即非編程訪問方式;另一種是使用ADO對象模型,通過定義對象和編寫代碼來實現(xiàn)對數(shù)據(jù)的訪問,即編程訪問方式。下面以SQL Server數(shù)據(jù)庫為例,說明這兩種方式的使用。首先在SQL Server 2000中建立一個XJGL的數(shù)據(jù)庫,在XJGL數(shù)據(jù)庫中建立student數(shù)據(jù)表,然后將此數(shù)據(jù)表的信息通過數(shù)據(jù)綁定控件DataGrid顯示出來。

        (一)使用ADO Data控件訪問數(shù)據(jù)庫。這是使用ADO快速創(chuàng)建數(shù)據(jù)綁定控件和數(shù)據(jù)提供者之間的連接。其中數(shù)據(jù)綁定控件可以是任何具有DataSource屬性的控件;數(shù)據(jù)提供者可以是任何符合OLE DB規(guī)范的數(shù)據(jù)源。

        ADO Data控件是ActiveX控件,在使用前必須先將其添加到工具箱中。方法是:

        (1)單擊“工程”—“部件”菜單選項,選中“Microsoft ADO Data Control 6.0(OLE DB)”后,按“確定”,此時ADO數(shù)據(jù)控件便出現(xiàn)在工具箱中。

        (2)將ADO Data控件添加到窗體上,其默認的名稱屬性為“Adodc1”。

        (3)右擊ADO Data控件,選“ADODC屬性”,彈出“屬性頁”對話框。

        (4)選中“使用連接字符串”(也可以選擇“ODBC數(shù)據(jù)源名稱”),再單擊“生成”按鈕,彈出“數(shù)據(jù)鏈接屬性”對話框。

        (5)選擇“提供程序”選項卡,在列表中選擇“Microsoft OLE DB Provider For SQL SERVER”選項,單擊“下一步”按鈕。

        (6)指定服務器的名稱和登錄信息并選擇本連接要使用的數(shù)據(jù)庫文件。

        (7)單擊“測試連接”按鈕以確定連接是否正常。若得到測試成功的消息,單擊“確定”按鈕以繼續(xù)。

        (8)在“屬性頁”對話框中選擇“記錄源”選項卡,在命令類型下拉列表中選擇“2-adCmdTable”選項,在表或存儲過程名稱下拉列表中選擇數(shù)據(jù)表“student”。(若選擇的命令類型為“1-adCmdText”,則可在命令文本框中輸入SQL查詢語句),然后單擊“確定”按鈕。

        (9)在窗體上再添加一個數(shù)據(jù)綁定控件DataGridl,設定其DataSource為Adodc1。

        通過上述操作便實現(xiàn)了SQL Server數(shù)據(jù)庫XJGL中student表的瀏覽功能,得到預期的運行結果。

        (二)使用ADO 對象模型訪問數(shù)據(jù)庫。為了能夠在程序中使用ADO對象編程,在連接數(shù)據(jù)庫前,需要在Visual Basic 6.0菜單 “工程”—“引用”中選擇Microsoft ActiveX Data Objects 2.8 Library組件。運用ADO對象模型的主要元素:Connection(連接)中的ConnectionString屬性進行連接,ConnectionString為可讀寫string類型,指定一個連接字符串,告訴ADO如何連接數(shù)據(jù)庫。

        (1)首先創(chuàng)建一組ADO對象用于設置打開連接和產(chǎn)生結果集。聲明語句如下:

        Dim cn As New ADODB.Connection

        Dim rs As New ADODB.Recordset

        (2)創(chuàng)建ADO對象實例,聲明了對象以后,還需要創(chuàng)建對象實例,否則不能使用。以下是兩條重要語句:

        Set cn =New ADODB.Connection

        Set rs =New ADODB.Recordset

        (3)設置Connection對象實例ConnectionString屬性連接到數(shù)據(jù)庫。有兩種方法:

        方法一:有源數(shù)據(jù)庫連接。首要任務是要注冊數(shù)據(jù)源名稱(DSN),通過配置ODBC環(huán)境,進行數(shù)據(jù)源的注冊,然后才能對數(shù)據(jù)源進行連接、訪問和操作。例如,DSN數(shù)據(jù)源是“information”、用戶名是“sa”、口令為空,與數(shù)據(jù)庫“XJGL”建立的連接代碼如下:

        cn.ConnectionString="dsn=information;uid=sa;pwd=;database=XJGL"

        方法二:無源數(shù)據(jù)庫連接。不需要配置ODBC數(shù)據(jù)源,區(qū)別在于是否使用了DSN來決定。例如,提供連接所需要的特定信息包括:服務器名稱是“my_server”、用戶名是“sa”、口令為空,與數(shù)據(jù)庫“XJGL”建立的連接代碼如下:

        cn.ConnectionString="driver={sql server};server=my_server;uid=sa;pwd=;Database=XJGL"

        (4)設置好連接屬性后,就可以打開連接對象了。語句如下:

        cn.Open

        這樣,VB和后臺SQL Server數(shù)據(jù)庫的連接就創(chuàng)建好了。

        實例:創(chuàng)建示圖界面,并以無源數(shù)據(jù)庫連接的方式完成上例同樣的功能。編寫代碼如下:

        Dim cn As New ADODB.Connection

        Dim rs As New ADODB.Recordset

        Dim cmd As New ADODB.Command

        Private Sub Form_Load()

        Set cn=New ADODB.Connection

        Set rs=New ADODB.Recordset

        cn.ConnectionString="driver={sql server};server=my_server;uid=sa;pwd=;Database=XJGL"

        cn.Open

        cmd.ActiveConnection=cn

        cmd.CommandType=adCmdText

        cmd.CommandText="select* from student"

        rs.CursorLocation=adUseClient

        rs.CursorType=adOpenDynamic

        rs.LockType=adLockReadOnly

        rs.Open cmd

        Set DataGrid1.DataSource=rs

        End Sub

        ADO數(shù)據(jù)控件和ADO對象模型都為我們提供了數(shù)據(jù)庫訪問的接口技術,使用ADO Data控件在建立連接、選擇數(shù)據(jù)表時,不需要創(chuàng)建連接對象和記錄集對象,ADO Data控件幾乎封裝了相應代碼的所有功能,只需設置好與之相關的屬性、方法和事件,操作簡單,但是ADO Data控件靈活性較差,不利于對大型數(shù)據(jù)庫訪問,一個ADO Data控件只能在同一數(shù)據(jù)源上打開一個記錄集,在一個應用中若涉及多個記錄集,則需要建立多個ADO Data控件。使用ADO對象模型,通過定義對象、編寫代碼來實現(xiàn)數(shù)據(jù)庫的訪問,可以很好地控制各種操作,使其具備了更多的靈活性和更強大的功能,便于實現(xiàn)對象重用、封裝等技術,也利于事件處理,提高數(shù)據(jù)操作效率,特別是對海量數(shù)據(jù)的處理。兩種方法各有優(yōu)點,在開發(fā)應用程序時,應根據(jù)數(shù)據(jù)庫應用程序的特點來選擇具體的訪問方式。

        (作者單位:西安歐亞學院)

        參考文獻:

        [1][美]Bob Reselman,Richard Peasley.實用Visual Basic 6教程.清華大學出版社,2001.3.

        [2][美]Ted Coombs,Jon Campbell.Visual Basic編程實用大全.中國水利水電出版社,2002.11.

        [3]張宗飛.VB中基于ADO的數(shù)據(jù)庫訪問技術分析及應用.計算機與數(shù)字工程,2008.

        [4]夏慶梅,熊華鋼.VB訪問SQL Server的三種數(shù)據(jù)訪問接口的研究.計算機應用研究,2001.

        国内露脸少妇精品视频| 日本视频一区二区三区三州| 国产激情小视频在线观看| 福利视频一区二区三区| 97se狠狠狠狠狼鲁亚洲综合色| 亚洲日韩成人av无码网站| av无码天一区二区一三区| 一区二区三区在线观看日本视频| 国产毛片精品av一区二区| 青春草在线视频观看| 久久精品国产视频在热| 国产做无码视频在线观看浪潮| 女人被躁到高潮嗷嗷叫| 96中文字幕一区二区| 日韩乱码人妻无码系列中文字幕| 中文字幕丰满伦子无码| 亚洲国产午夜精品乱码| 国产三级伦理视频在线| 日本按摩偷拍在线观看| 在线播放五十路熟妇| 日韩高清在线观看永久| 色综合久久久久综合999| 内射中出后入内射极品女神视频| 在线观看 国产一区二区三区| 麻豆婷婷狠狠色18禁久久| 国产精品永久免费视频| 日本熟妇中文字幕三级| 亚洲无人区乱码中文字幕动画 | 亚洲国产成人精品无码区二本| 18级成人毛片免费观看| 久久国产精品久久久久久| 无码人妻精品一区二区三区不卡| 天天躁日日操狠狠操欧美老妇 | 色悠久久久久综合欧美99| 99在线国产视频| 成人自拍三级在线观看| 夜夜躁日日躁狠狠久久av| 国产丝袜视频一区二区三区| 色播在线永久免费视频网站| 偷拍熟女露出喷水在线91| 亚洲国产精品av麻豆网站|