国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Visual Basic中ADO編程技術(shù)探析

2012-12-31 00:00:00張立社
考試周刊 2012年49期


  摘 要: Visual Basic提供了DAO、RDO、ADO三類數(shù)據(jù)庫編程接口,本文對應(yīng)用ADO技術(shù)進(jìn)行數(shù)據(jù)庫編程時(shí)的一般步驟及數(shù)據(jù)源連接和數(shù)據(jù)記錄的添加、刪除、修改、查詢的方法做了探析。
  關(guān)鍵詞: Visual Baisc ADO 數(shù)據(jù)庫編程
  1.引言
  前端開發(fā)工具+后臺(tái)數(shù)據(jù)庫是許多應(yīng)用程序采用的開發(fā)模式。前端開發(fā)工具的優(yōu)勢在于其良好的應(yīng)用程序界面設(shè)計(jì)能力,而后臺(tái)數(shù)據(jù)庫具有強(qiáng)大的數(shù)據(jù)管理功能,提供后臺(tái)的數(shù)據(jù)支持。Visual Basic(VB)即是近年來被普遍采用的前端開發(fā)工具之一,VB提供了豐富的數(shù)據(jù)庫訪問接口,加上其可視化、面向?qū)ο?、采用事件?qū)動(dòng)方式的特點(diǎn),使其受到廣大程序開發(fā)人員的喜愛,并被大中專院校選為計(jì)算機(jī)及相關(guān)專業(yè)的必修課。
  2.Visual Basic數(shù)據(jù)庫訪問技術(shù)概述
  在VB數(shù)據(jù)庫編程中如何將后臺(tái)數(shù)據(jù)與應(yīng)用程序窗體中的數(shù)據(jù)綁定控件連接起來呢?VB提供了三類數(shù)據(jù)訪問接口。
  2.1 DAO(Data Access Objects)接口技術(shù)。
  DAO是Microsoft推出的第一個(gè)基于面向?qū)ο蠹夹g(shù)的數(shù)據(jù)庫訪問技術(shù),DAO采用Jet引擎和ODBC兩種方式訪問數(shù)據(jù)庫。
  2.2 RDO(Remote Data Objects)技術(shù)。
  RDO是建立在ODBC基礎(chǔ)上的面向?qū)ο蟮臄?shù)據(jù)訪問技術(shù),即一般采用ODBC方式訪問數(shù)據(jù)庫。
  2.3 ADO(ActiveX Data Object)技術(shù)。
  ADO是微軟在DAO、RDO之后提出的新一代數(shù)據(jù)庫應(yīng)用程序開發(fā)接口,是建立在OLEDB上的高層數(shù)據(jù)庫訪問技術(shù)。OLE DB是一個(gè)低層的基于COM 的數(shù)據(jù)訪問接口,它向應(yīng)用程序提供了一個(gè)統(tǒng)一的數(shù)據(jù)訪問方法,用它可以訪問各種數(shù)據(jù)源。ADO封裝了OLEDB所提供的接口,ADO對象可以使用戶通過OLE DB Provider訪問和操縱數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。ADO可以實(shí)現(xiàn)對關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫的訪問,與DAO、RDO相比,ADO具有較少的對象、更多的屬性、方法和事件實(shí)現(xiàn)對各種數(shù)據(jù)源的訪問,因此ADO技術(shù)目前成為VB數(shù)據(jù)庫應(yīng)用的主流技術(shù),我們將重點(diǎn)介紹該技術(shù)。
  VB中ADO技術(shù)訪問數(shù)據(jù)庫具體有兩種途徑,即ADO控件(實(shí)際為ADO對象封裝而成)和ADO對象兩種方法訪問數(shù)據(jù)庫。
  ADO控件使用簡便,用戶只需編寫很少的代碼,就可實(shí)現(xiàn)數(shù)據(jù)的添加、修改、刪除等操作,比較適合于初學(xué)者或小型的數(shù)據(jù)庫應(yīng)用程序,但靈活性較差。而ADO對象功能非常強(qiáng)大,適合于熟練的用戶或較為復(fù)雜的應(yīng)用程序。
  3.ADO控件數(shù)據(jù)庫編程
  3.1 ADO控件實(shí)現(xiàn)數(shù)據(jù)庫編程的一般步驟。
  3.1.1添加ADO控件到時(shí)VB工具箱。由于ADO控件是ActiveX控件,使用時(shí)就首先添加到VB工具箱中。方法為:選擇“工程/部件”命令,在部件對話框中,選中Microsoft ADO DATA Control 6.0(OLEDB)復(fù)選框,然后確定即可。
  3.1.2在應(yīng)用程序窗體中添加ADO控件和數(shù)據(jù)綁定控件(常用的數(shù)據(jù)綁定控件有TextBox、CheckBox、DataGrid、MSHFlexGrid等)。
  3.1.3用ADO控件連接數(shù)據(jù)源。方法是:右單擊ADO控件,選“屬性”命令,打開“屬性頁”對話框進(jìn)行相應(yīng)設(shè)置連接數(shù)據(jù)源。具體連接方式有三。
  >使用Data Link文件連接:該方式表示采用一個(gè)ODBC文件數(shù)據(jù)源連接文件完成,要求事先在控制面板中應(yīng)創(chuàng)建好文件數(shù)據(jù)源(文件DSN)。
  >使用ODBC數(shù)據(jù)資源名稱:此方式表示連接至一個(gè)ODBC用戶數(shù)據(jù)源,要求事先在控制面板中創(chuàng)建好用戶數(shù)據(jù)源(用戶DSN),使用時(shí)直接在ADO控件“屬性頁”O(jiān)DBC數(shù)據(jù)資源名稱下拉列表中選擇該數(shù)據(jù)源即可。
  >使用連接字符串:這是最靈活也是最常用的方式,單擊“生成”按鈕,按照提示依次選擇“OLE DB提供程序”、“選擇輸入數(shù)據(jù)庫名稱”,然后單擊“記錄源”選項(xiàng)卡,設(shè)置命令類型,命令類型告訴提供者Source屬性是一條SQL語句(adCmdText)、一個(gè)表的名稱(adCmdTable)、一個(gè)存儲(chǔ)過程(adCmdStoreProc)還是一個(gè)未知類型(adCmdUnknown)。
  使用連接字符串的方法,除上述做法外也可直接在Form_Load()事件代碼中通過ADO控件的ConnectionString屬性、RecordSource屬性、Refresh屬性實(shí)現(xiàn)數(shù)據(jù)源連接。強(qiáng)烈建議較熟練用戶采用本方法,實(shí)際代碼可參照如下:
  Private Sub Form_Load()
  Adodc1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& App.Path &"\\學(xué)籍管理.mdb;Persist Security Info=False"
  Adodc1.RecordSource="select* from學(xué)生信息"
  Adodc1.Refresh
  Set DataGrid1.DataSource=Adodc1
  End Sub
  3.1.4設(shè)置數(shù)據(jù)綁定控件的DataSource、DataField等屬性,將數(shù)據(jù)表與相應(yīng)的數(shù)據(jù)顯示控件進(jìn)行綁定。例如窗體中有文本框控件Text1,如要和數(shù)據(jù)表中字段綁定,則應(yīng)設(shè)置DataSource屬性值為“Adodc1”,DataField屬性的值應(yīng)設(shè)置為相應(yīng)數(shù)據(jù)表的字段名。
  3.1.5編寫事件代碼。為控件編寫實(shí)現(xiàn)相關(guān)功能的代碼。
  3.2 ADO控件編程中增、刪、改、查的實(shí)現(xiàn)。
  3.2.1記錄的增加。當(dāng)在窗體中單擊增加按鈕時(shí)添加記錄,在窗體數(shù)據(jù)綁定控件中輸入記錄內(nèi)容后,單擊保存按鈕保存。實(shí)現(xiàn)此功能則在增加按鈕的Click事件代碼中的關(guān)鍵語句為:Adodc1.Recordset.AddNew,該語句調(diào)用AddNew方法在記錄集中添加一條新記錄,并且該記錄成為當(dāng)前記錄,然后在數(shù)據(jù)綁定控件中輸入相關(guān)數(shù)據(jù)。而在保存按鈕的Click事件代碼中的關(guān)鍵語句為:Adodc1.Recordset.Update,該語句調(diào)用Update方法用新輸入的記錄值更新當(dāng)前記錄至相應(yīng)的數(shù)據(jù)庫表中,即可完成數(shù)據(jù)的修改。
  3.2.2記錄的刪除。單擊刪除按鈕刪除當(dāng)前記錄。實(shí)現(xiàn)此功能的關(guān)鍵代碼為:Adodc 1.Recordset.Delete、Adodc 1.Refresh。
  3.2.3記錄的修改。實(shí)現(xiàn)此功能的關(guān)鍵代碼為:Adodc 1.Recordset.Edit。
  3.2.4記錄的查詢。查詢可通過設(shè)置ADO控件的RecordSource屬性來完成。關(guān)鍵代碼一般格式為:Adodc 1.RecordSource="Select * from 表名 Where 查詢條件"、Adodc 1.Refresh。
  4.ADO對象數(shù)據(jù)庫編程
  4.1ADO對象簡介。
  ADO模型中共有7個(gè)對象,分別為連接對象Connection、記錄集對象Recordset、命令對象Command、參數(shù)對象Parameter、域?qū)ο驠ield、屬性對象Property和錯(cuò)誤對象Error。其中Connection、Recordset、Command是最常用的三大對象,下面僅對這三大對象作以介紹。
  4.1.1Connection對象用于建立與數(shù)據(jù)庫的連接,通過連接可從應(yīng)用程序訪問數(shù)據(jù)源。主要包括打開連接(Open方法)、關(guān)閉連接(Close方法)及運(yùn)行SQL命令等,連接是訪問數(shù)據(jù)源的前提條件。其常用重要屬性為ConnectionString、ConnectTimeout等。
  4.1.2 Recordset對象用于管理來自基本表或SQL查詢語句執(zhí)行結(jié)果的記錄集,以及記錄中的游標(biāo)。Recordset對象所指的當(dāng)前記錄均為記錄集中的單個(gè)記錄,ADO對象編程中數(shù)據(jù)的添加、刪除、修改、查詢主要就是通過Recordset對象來實(shí)現(xiàn)的。其常用重要屬性有Source、BOF、EOF、CursorType、LockType、Filter、PageCount、RecordCount等,重要的方法有Open、Close、AddNew、Update、Delete。
  4.1.3 Command對象用于指定將要對數(shù)據(jù)源執(zhí)行的命令。在建立Connection對象后,可以發(fā)出命令操作數(shù)據(jù)源以獲取數(shù)據(jù)。Command對象通過Execute方法執(zhí)行命令。一般情況下使用Command對象可以在數(shù)據(jù)源中實(shí)現(xiàn)添加、刪除、更新、檢索數(shù)據(jù)。其常用重要屬性有ActiveConnection、CommandText、CommandTimeout、CommandType等。
  4.1.4 Parameter對象用于管理基于參數(shù)化查詢或存儲(chǔ)過程的Command對象相關(guān)聯(lián)的參數(shù)或自變量??捎糜谥付▍?shù)的名稱、值、類型、屬性等。
  4.1.5 Field對象對應(yīng)于Recordset對象的一列,可用于訪問字段的相關(guān)屬性,F(xiàn)ield對象從屬于Recordset對象,即只能從中訪問Field對象。
  4.1.6 Property對象代表由提供者定義的ADO對象的動(dòng)態(tài)特性。
  4.1.7 Error對象包含了訪問數(shù)據(jù)源時(shí)所返回的錯(cuò)誤的詳細(xì)信息。使用ADO訪問數(shù)據(jù)源時(shí),一旦有錯(cuò)誤發(fā)生將會(huì)生成一個(gè)或多個(gè)Error對象,利用Error的Desciption屬性、Number屬性、Source屬性可獲得錯(cuò)誤的相關(guān)信息。
  4.2 ADO對象編程的一般步驟及要點(diǎn)
  4.2.1啟動(dòng)VB6.0,建立新工程。
  4.2.2引用ADO對象。
  在VB菜單中選擇“工程”/“引用”命令,在“引用”對話框中選中“Microsoft ActiveX Data Objects2.8Library”,引用之后就可在工程中使用ADO對象了。
  4.2.3在程序中聲明ADO對象。
  VB中使用對象變量時(shí)應(yīng)先聲明,一般格式為:Dim variable As〔New〕classVariable—對象變量名。ClassVariable指對象所屬的類型,New是可選關(guān)鍵字,用于在程序運(yùn)行時(shí)創(chuàng)建新對象,如無New關(guān)鍵字,則只聲明變量而不會(huì)創(chuàng)建對象,如果要?jiǎng)?chuàng)建則需用SET語句完成。聲明ADO對象常用格式如下:
  Dim mycnn As New ADODB.Connection
  Dim myrs As New ADODB.Recordset
  Dim mycmd As New ADODB.Command
  4.2.4連接數(shù)據(jù)源
  連接數(shù)據(jù)源應(yīng)用的方法是Connection對象的Open方法。
  一般格式為:
  Connection對象.Open ConnectionString, UserID, PassWord, OpenOptions
  其中:ConnectionString為可選項(xiàng),包含了連接的數(shù)據(jù)庫的信息;UserID可選項(xiàng),包含建立連接的用戶名;PassWord為可選項(xiàng),包含建立連接的用戶密碼;OpenOptions為可選項(xiàng),假如設(shè)置為dConnectAsync,則連接將異步打開.
  例如:
  mycnn.Open"Provider=VFPOLEDB.1;Data Source="& App.Path建立到數(shù)據(jù)庫的連接
  4.2.5打開記錄集對象。
  記錄集是從數(shù)據(jù)庫取回的一個(gè)查詢結(jié)果集,所以查詢即是通過打開記錄集實(shí)現(xiàn)的。常用的打開Recordset方法有三種。
  4.2.5.1使用Recordset對象的Open方法
  一般格式:
  Recordset.Open Source,ActiveConnection,CursorType,LockType,Options
  例如:
  myrs.Open"testlib",cnn,adOpenKeyset,adLockOptimistic
  4.2.5.2使用Connection對象的Execute方法
  一般格式:
  Set recordset=Connection.Execute(CommandText,RecordsAffected,Options)
  例如:
  Strsql="select*from學(xué)生信息where班級=‘10護(hù)理4班’"
  Cn.opencnstring
  Set Rs=cn.execute(strsql)
  4.2.5.3使用用Command對象的Execute方法
  使用Command對象的Execute方法執(zhí)行CommandText屬性中設(shè)置的SQL命令,返回查詢記錄集.
  例如:
  Strsql="select *from學(xué)生信息where班級=‘10護(hù)理4班’"
  Cn.open cnstring
  cmd.activeconnection=cn
  cmd.commandtext=strsql
  Set Rs=cmd.execute
  4.2.6數(shù)據(jù)的添加、刪除、更新要點(diǎn)。
  添加數(shù)據(jù)記錄利用Recordset對象的AddNew方法實(shí)現(xiàn),例如:Rs.AddNew
  刪除數(shù)據(jù)記錄利用Recordset對象的Delete方法實(shí)現(xiàn),配合Filter屬性可實(shí)現(xiàn)批量刪除例如:Rs.Delete
  數(shù)據(jù)發(fā)生改變后應(yīng)及時(shí)使用Recordset對象的Update方法更新數(shù)據(jù)記錄,如:Rs.Update
  5.結(jié)語
  ADO數(shù)據(jù)庫編程是微軟推出的新一代數(shù)據(jù)庫編程技術(shù),是建立在OLEDB、ODBC等較為低層的數(shù)據(jù)庫技術(shù)之上的應(yīng)用層數(shù)據(jù)庫編程接口,是對OLEDB的封裝,采用面向?qū)ο蟮募夹g(shù)思想極大地提高了程序開發(fā)的效率。本文對ADO編程的特點(diǎn)及ADO編程的一般步驟和要點(diǎn)做了較為深入的探討,以期對讀者有所幫助,不妥之處,請批評指正。
  參考文獻(xiàn):
 ?。?]劉彬彬等.Visual Basic程序設(shè)計(jì)標(biāo)準(zhǔn)教程:DVD視頻教學(xué)版[M].北京:人民郵電出版社,2009.
 ?。?]高春艷等.學(xué)通Visual Basic的24堂課[M].北京:清華大學(xué)出版社,2011.
 ?。?]宋坤等.MFC程序開發(fā)參考大全[M].北京:人民郵電出版社,2007.
 ?。?]李曉喆等.SQLServer2000管理及應(yīng)用系統(tǒng)開發(fā)[M]北京:人民郵電出版社,200

潞城市| 农安县| 琼海市| 额敏县| 波密县| 滕州市| 尚义县| 平昌县| 吴桥县| 海南省| 新巴尔虎右旗| 广昌县| 三穗县| 饶河县| 揭东县| 兴仁县| 泸州市| 盐池县| 辽宁省| 化德县| 中卫市| 通渭县| 盐亭县| 东阿县| 宝鸡市| 定南县| 健康| 古蔺县| 屏南县| 布尔津县| 班玛县| 安宁市| 仙居县| 甘肃省| 金寨县| 天全县| 娄烦县| 诏安县| 运城市| 清河县| 连南|