![在VB程序中用ADO對象動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫和表_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/f827ca68-13cd-479f-ae3f-99c39ff5d5cc/f827ca68-13cd-479f-ae3f-99c39ff5d5cc1.gif)
![在VB程序中用ADO對象動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫和表_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/f827ca68-13cd-479f-ae3f-99c39ff5d5cc/f827ca68-13cd-479f-ae3f-99c39ff5d5cc2.gif)
![在VB程序中用ADO對象動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫和表_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/26/f827ca68-13cd-479f-ae3f-99c39ff5d5cc/f827ca68-13cd-479f-ae3f-99c39ff5d5cc3.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、在VB程序中用ADO對象動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫和表蔣鐵海(廣東外語外貿(mào)大學(xué)英文學(xué)院信息管理系510420)摘要:本文闡述了在VB程序中利用ADO對象動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表的方 法,這些方法在開發(fā)VB數(shù)據(jù)庫應(yīng)用程序中很有實(shí)用價(jià)值,它可以提高數(shù)據(jù)庫程序 靈活性。關(guān)鍵詞:數(shù)據(jù)庫、數(shù)據(jù)表、ADO、ADOX1:問題的提出在Visual Basic中,常用的數(shù)據(jù)訪問接口有下列三種:數(shù)據(jù)庫訪問對象(DAO, Data Access Object) > 遠(yuǎn)程數(shù)據(jù)庫對象(RDO, Remote Data Object)和 ActiveX數(shù)據(jù)對象(ADO, ActiveX Data Object )。數(shù)據(jù)庫訪問技術(shù)
2、一直在不斷進(jìn) 步,而這三種接口的每一種都分別代表了該技術(shù)的不同發(fā)展階段。最新的是ADO, 它是比RDO和DAO更加簡單,然而更加靈活的對象模型。正因如此,越來越多的人 在用VB開發(fā)數(shù)據(jù)庫軟件時(shí)使用ADO作為數(shù)據(jù)訪問接口。在開發(fā)過程中,我們通常 的使用的方法是:先使用數(shù)據(jù)庫管理系統(tǒng)(例如:Microsoft Access)或YB中的可 視化數(shù)據(jù)管理器建立好數(shù)據(jù)庫和數(shù)據(jù)表結(jié)構(gòu),然后在程序中通過使用ADODC數(shù)據(jù)庫 控件或引用ADO對象與數(shù)據(jù)庫中的表建立連接,再通過數(shù)據(jù)庫感知控件(例如:文 本框、DataGrid等)來進(jìn)行數(shù)據(jù)庫的各種操作。在這種開發(fā)過程中,我們有時(shí)需要 面對這樣一個(gè)問題:如何讓用戶
3、在程序運(yùn)行過程中動(dòng)態(tài)地建立自己所需的數(shù)據(jù)庫和 數(shù)據(jù)表以提高程序的靈活性呢?在程序運(yùn)行過程中建立自己所需的數(shù)據(jù)庫和數(shù)據(jù) 表,其本質(zhì)就是用代碼(或者說通過編程)來建立數(shù)據(jù)庫和數(shù)據(jù)表。眾所周知,在 Foxpro或ASP編程中,這是很容易的一件事件。那么在VB數(shù)據(jù)庫編程中乂是怎樣 來操作的呢?在VB數(shù)據(jù)庫編程中,如果使用DAO作為數(shù)據(jù)庫訪問接口技術(shù),則可 以用CreateDatabase結(jié)合CreateTableDef方法來實(shí)現(xiàn),U前已有不少書和雜志都 講到了這種方法,本文就不再講述了;但你如果使用的是最新的數(shù)據(jù)庫訪問接口技 術(shù)ADO,你卻發(fā)現(xiàn)口前的書和雜志上沒有文章講到如何用代碼來建立數(shù)據(jù)庫和數(shù)據(jù)
4、表的方法,可有時(shí)我們非常需要用到這種方法,下面我們就來解決這個(gè)問題。2: ADO 與 ADOX我們先來對ADO和ADOX進(jìn)行簡單的認(rèn)識。在VB6中,使用ADO開發(fā)數(shù)據(jù)庫 應(yīng)用程序時(shí),我們要引用對象庫"Microsoft ActiveX Data Objects 2. 5 Library",這個(gè)東西的簡稱就是ADO,它是VB6數(shù)據(jù)庫最核心的對象群,也是VB 數(shù)據(jù)庫開發(fā)人員經(jīng)常所引用的對象庫,在VB6中你可以看到它的各種版本,從2.0 版到2. 6版都有,很多人對它已經(jīng)很熟悉,在此我們不再詳細(xì)介紹。如果要在程序 運(yùn)行過程中創(chuàng)建數(shù)據(jù)庫和表,我們還要引用對象庫"Micro
5、soft ADO Ext 2.1. For DDL Security”,簡稱為ADOX,其庫文件名為是:Msadox.dll。ADOX是對ADO對 象和編程模型的擴(kuò)展,它將ADO擴(kuò)展為包括創(chuàng)建、修改和刪除模式對象,如表格 和過程。它還包括安全對象,用于維護(hù)用戶和組,以及授予和撤消對象的權(quán)限。 ADOX的對象如下表所示:對象說明Catalog包含描述數(shù)據(jù)源模式目錄的集合。Column表示表、索引或關(guān)鍵字的列。Group表示在安全數(shù)據(jù)庫內(nèi)有訪問權(quán)限的組帳號。Index表示數(shù)據(jù)庫表中的索引。Key表示數(shù)據(jù)庫表中的主關(guān)鍵字、外部關(guān)鍵字或唯一關(guān)鍵字。Procedure表示存儲(chǔ)的過程。Table表示數(shù)據(jù)庫
6、表,包括列、索引和關(guān)鍵字。User表示在安全數(shù)據(jù)庫內(nèi)具有訪問權(quán)限的用戶帳號。View表示記錄或虛擬表的過濾集。ADOX 常用方法有:Append (包括 Columns、Groups、Indexes、Keys、 Procedures a Tables、Users、Views)、Create (創(chuàng)建新的目錄)、Delete (刪除集 合中的對象)、Refresh(更新集合中的對象)等等。有關(guān)ADOX的詳細(xì)信息,請?jiān)?中參閱Microsoft發(fā)布的有關(guān)ADOX說明的Web頁。3:在原有數(shù)據(jù)表的基礎(chǔ)上產(chǎn)生新的數(shù)據(jù)表如果僅僅是在已有的數(shù)據(jù)表的基礎(chǔ)上產(chǎn)生新的數(shù)據(jù)表,我們只要引用對象庫 "Mic
7、rosoft ActiveX Data Objects 2. 5 Libraryn 再利用 SelectInto 語句就 可以了。例如:有一個(gè)名為Wage, mdb的數(shù)據(jù)庫,數(shù)據(jù)庫中有一個(gè)名為“工資表” 數(shù)據(jù)表,該數(shù)據(jù)表的字段有:編號、姓名、基本工資、津貼、應(yīng)發(fā)工資、扣款、實(shí) 發(fā)工資等,這個(gè)表中已經(jīng)有很多的記錄。現(xiàn)在我們把其中的實(shí)發(fā)工資大于2000的 記錄篩選岀來組成一個(gè)新表,新表的名稱由用戶從文本框中輸入,新表中我們只要 三個(gè)字段,它們是:編號、姓名、實(shí)發(fā)工資。我們用下列程序就可以實(shí)現(xiàn):(事先 在窗體中添加一個(gè)文本框Textl和一個(gè)命令按鈕Command 1)Dim conn As New
8、ADODB. ConnectionDim rs As New ADODB. RecordsetDim command As New ADODB. commandPrivate Sub Commandl_Click()Dim bm As StringDim sql As StringIf Textl. Text <> "" Thenbm = Trim(Textl. Text)sql= "Select編號,姓名,實(shí)發(fā)工資Into " + bm + “ From工資表Where 實(shí)發(fā)工資>2000Set commandActiveConnec
9、tion 二 conncommand CommandText = sqlcommand ExecuteElseMsgBox "你必須輸入一個(gè)名字"End IfPrivate Sub Form_Load()Dim str As Stringstr = App PathIf Right(str, 1) <> "" Thenstr 二 str + ""End Ifpstr = "Provider二Micros。ft. Jet OLEDB 3. 51;"pstr = pstr & "Persi
10、st Security Info二False;"pstr = pstr & "Data Source二"& str & ''wage mdb"conn. Open pstrrs. CursorLocation = adUseClientrs. Open "工資表",conn, adOpenKeyset, adLockPessimisticSet DataGridl. DataSource = rsEnd Sub當(dāng)然,我們還可以把程序設(shè)計(jì)得更好,比如:讓用戶先在窗口中任意選擇所 需的字段和一些條件
11、,然后再組合生成一個(gè)新表。但無論如何,這種操作只能在從 原表的基礎(chǔ)上產(chǎn)生一個(gè)新表,不能產(chǎn)生一個(gè)數(shù)據(jù)庫文件,并且新表和原表放在同一 個(gè)數(shù)據(jù)庫中。4:建立新的數(shù)據(jù)庫和表前面講到的方法有一定的局限性,它不能讓用戶產(chǎn)生自己所需的數(shù)據(jù)庫文 件,即使能產(chǎn)生數(shù)據(jù)表也只能在原有表的基礎(chǔ)上生成。我們現(xiàn)在的LI的就是讓用戶 利用ADO對象在程序運(yùn)行過程中創(chuàng)建數(shù)據(jù)庫和表,就好象他利用Access來建立數(shù) 據(jù)庫和表一樣。為此,我們應(yīng)該引用對象庫"Microsoft ActiveX Data Objects 2. 5 Libraryn 和"Microsoft ADO Ext 2. 1. For DD
12、L Securityn我們不妨用一個(gè)實(shí)例來說明具體的操作過程和方法。我們的實(shí)例要達(dá)到U的 是:在程序運(yùn)行過程中建立一個(gè)數(shù)據(jù)庫,數(shù)據(jù)庫的名稱由用戶輸入。然后在數(shù)據(jù)庫 中建立一個(gè)名為“MyTable”的數(shù)據(jù)表,數(shù)據(jù)表中有三個(gè)字段,它們分別是:“編 號”(整數(shù)型)、“姓名”(字符型,寬度為8)、“住址”(字符型,寬度為50), 接著在數(shù)據(jù)表中添加一條記錄,最后在DataGrid控件中把記錄的內(nèi)容顯示出來, 并且讓用戶在DataGrid控件中任意修改、添加記錄。首先在VB中新建一個(gè)窗體,然后在“工程”菜單中引用對象庫“Microsoft ActiveX Data Objects 2.5 Library
13、n 和"Microsoft ADO Ext 2. 1. For DDL Security”。接著定義三個(gè)窗體級的對象變量和一個(gè)窗體級的字符串變量,它們的 具體定義是:Dim cat As New ADOX. Catalog '不用cat用另外一個(gè)名字也可以Dim conn As New ADODB. ConnectionDim rs As New ADODB. RecordsetDim pstr As String '定義該變量是為了后面的書寫方便為了更靈活地創(chuàng)建數(shù)據(jù)庫,我們可以在窗體中加入一個(gè)通用對話框、一個(gè) DataGrid控件,三個(gè)命令按鈕,它們的標(biāo)題分別是:創(chuàng)
14、建數(shù)據(jù)庫和表、查看、更 新。通用對話框的作用是給用戶輸入數(shù)據(jù)庫文件名和決定數(shù)據(jù)庫的存放位置?!皠?chuàng)建數(shù)據(jù)庫和表”命令按鈕對應(yīng)的代碼是:Private Sub Commandl_Click()Dim fm As String'fm變量用來獲取用戶輸入的文件名CommonDialogl. Filter = "MDB 文件(*. mdb) ) *. mdb AllFiles (*. *)CommonDialogl. Filterindex = 1CommonDialogl. InitDir = "D:Jthpdper"CommonDialogl. Flags = 6CommonDialog
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度土地開發(fā)權(quán)轉(zhuǎn)讓合同附規(guī)劃設(shè)計(jì)及施工許可
- 施工合同簽訂及履行制度
- 教育機(jī)構(gòu)的字體運(yùn)用規(guī)范
- 遠(yuǎn)程教育對學(xué)習(xí)困難學(xué)生的支持研究
- 幼兒園燃?xì)庑孤?yīng)急預(yù)案
- 上海市某物流有限公司勞動(dòng)合同
- 個(gè)人委托代理合同范本示例
- 三孩子離婚贍養(yǎng)費(fèi)合同范本
- 二手物品買賣合同范文
- 個(gè)人住房抵押貸款合同范本大全
- 沙發(fā)市場需求與消費(fèi)特點(diǎn)分析
- 豐順縣縣級集中式飲用水水源地基礎(chǔ)狀況調(diào)查和風(fēng)險(xiǎn)評估報(bào)告
- 重慶市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 《七律二首 送瘟神》教案- 2023-2024學(xué)年高教版(2023)中職語文職業(yè)模塊
- 八年級語文上冊《作文》專項(xiàng)測試卷及答案
- 2024年中考語文滿分作文6篇(含題目)
- 2024年安全員之江蘇省C2證(土建安全員)題庫與答案
- 第一節(jié)-貨幣資金資料講解
- 2024年華僑、港澳、臺(tái)聯(lián)考高考數(shù)學(xué)試卷含答案
- 工程造價(jià)咨詢服務(wù)投標(biāo)方案(技術(shù)方案)
- 駕駛員安全行車考核獎(jiǎng)懲制度(3篇)
評論
0/150
提交評論