版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫的演講AnIntroductiontoDatabaseSystem第1頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADO的形象化理解我們通過一個生活中的例子來理解ADO對象的作用。日常生活中我們引用的自來水是從遠(yuǎn)程的水庫經(jīng)過鋪設(shè)的管道,最后流入千家萬戶的,如果我們把SQLServer2000服務(wù)器比喻為水庫,把數(shù)據(jù)比喻為水的話,那么ADO對象就是鋪設(shè)的自來水管道。與生活中例子不同的是,數(shù)據(jù)庫系統(tǒng)操作的數(shù)據(jù)還可能通過這條數(shù)據(jù)管道最后回流SQLServer2000數(shù)據(jù)庫。有了ADO,我們在開發(fā)數(shù)據(jù)庫系統(tǒng)時就非常簡單,大量的工作在開發(fā)前臺應(yīng)用界面上,然后將界面中顯示數(shù)據(jù)的控件和ADO對象進(jìn)行銜接即可。第2頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADO的分類ADO技術(shù)在實現(xiàn)上又分為ADODC和ADODB兩種。兩者的功能幾乎完全一樣,只是在實現(xiàn)的具體方式上有所不同。ADODC是一個圖形化的ActiveX控件,而ADODB不以圖形化控件的方式出現(xiàn)。第3頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADO的分類ADODC控件提供了有限的一些接口參數(shù)、屬性和方法,初學(xué)者通過簡單的配置后就可以掌握該控件的使用方法,從而快速掌握ADO技術(shù)。ADODC提供了存取數(shù)據(jù)庫數(shù)據(jù)的功能,但畢竟靈活性有限。要通過ADO技術(shù)開發(fā)出強(qiáng)大的、靈活的數(shù)據(jù)庫項目,就需要學(xué)習(xí)ADODB編程技術(shù)。在VisualBasic這樣的可視化編程工具中,既提供了ADODB,也提供了ADODC,兩者既可以單獨(dú)使用,也可以同時使用。第4頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem前面我們利用ADODC控件編寫了一個簡單的數(shù)據(jù)庫程序,下面來了解一個稍微復(fù)雜的ADODC控件編程實例,通過本例的學(xué)習(xí),大家可以進(jìn)一步掌握ADO的基本概念,之后再來學(xué)習(xí)ADODB就會比較容易。第5頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODC編程ADODC如何連接數(shù)據(jù)庫顯示數(shù)據(jù)控件如何設(shè)置邏輯代碼的處理第6頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem添加'單擊添加按鈕后的執(zhí)行代碼PrivateSubCmdInsert_Click()'調(diào)用AddNew方法向記錄集中添加記錄
Adodc1.Recordset.AddNew'設(shè)置其他按鈕的狀態(tài)CmdInsert.Enabled=FalseCmdDelete.Enabled=FalseCmdUpdate.Enabled=FalseCmdFirst.Enabled=FalseCmdPrevious.Enabled=FalseCmdNext.Enabled=FalseCmdLast.Enabled=FalseCmdSave.Enabled=TrueCmdCancel.Enabled=TrueEndSubAdodc1.Recordset為Adodc1控件的記錄集,表示從目的表中提取出來的內(nèi)存中的數(shù)據(jù)。AddNew是在內(nèi)存中添加一條記錄的方法。添加的記錄這時并沒有真正寫入物理上的數(shù)據(jù)庫中,而是存在于內(nèi)存中,然后調(diào)用UPDATE方法才能將數(shù)據(jù)真正添加第7頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem刪除'單擊刪除按鈕后的執(zhí)行代碼PrivateSubCmdDelete_Click()DimAnsAsInteger'在刪除記錄之前對用戶有一個警告Ans=MsgBox("確定刪除該記錄嗎?",vbYesNo,"警告")IfAns=vbYesThen
Adodc1.Recordset.DeleteEndIfEndSub第8頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem修改'單擊修改按鈕后的執(zhí)行代碼PrivateSubCmdUpdate_Click()'直接對文本框中的數(shù)據(jù)進(jìn)行修改就可以,然后單擊保存按鈕就可以CmdInsert.Enabled=FalseCmdDelete.Enabled=FalseCmdUpdate.Enabled=TrueCmdCancel.Enabled=TrueCmdSave.Enabled=TrueCmdFirst.Enabled=FalseCmdPrevious.Enabled=FalseCmdNext.Enabled=FalseCmdLast.Enabled=FalseEndSub因為顯示數(shù)據(jù)控件直接取之于Adodc1控件,也是直接在內(nèi)存中對數(shù)據(jù)進(jìn)行操作,所以對記錄集進(jìn)行修改直接在控件中過修改既可。修改后的數(shù)據(jù)需要調(diào)用update方法才能真正寫入數(shù)據(jù)庫中。第9頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem保存'單擊保存按鈕后的執(zhí)行代碼PrivateSubCmdSave_Click()'通過Update方法將Recordset中的數(shù)據(jù)提交到數(shù)據(jù)庫
Adodc1.Recordset.Update'恢復(fù)其他控件的屬性CmdInsert.Enabled=TrueCmdDelete.Enabled=TrueCmdUpdate.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=True'同時使保存和取消按鈕失效CmdSave.Enabled=FalseCmdCancel.Enabled=FalseEndSub記錄集的update方法用來完成將內(nèi)存中更改后的記錄集提交到物理數(shù)據(jù)庫中,即真正將數(shù)據(jù)寫入數(shù)據(jù)庫。第10頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem取消'單擊取消按鈕后的執(zhí)行代碼PrivateSubCmdCancel_Click()'通過CancelUpdate方法取消對數(shù)據(jù)的保存
Adodc1.Recordset.CancelUpdate'恢復(fù)其他控件的屬性CmdInsert.Enabled=TrueCmdDelete.Enabled=TrueCmdUpdate.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=True'同時使保存和取消按鈕失效CmdSave.Enabled=FalseCmdCancel.Enabled=FalseEndSub記錄集的CancelUpdate方法用于取消對內(nèi)存中記錄的修改第11頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem首記錄'單擊首記錄按鈕后的執(zhí)行代碼PrivateSubCmdFirst_Click()'調(diào)用MoveFirst方法指向記錄集的首記錄
Adodc1.Recordset.MoveFirstEndSub記錄集的MoveFirst方法表示將游標(biāo)移動到記錄集的第一條記錄。什么是cursor(游標(biāo))?Recordset是內(nèi)存中的一塊特殊的部分,它在內(nèi)存中是一個密不可分的整體。我們無法把它拆開來訪問,而應(yīng)用程序一般需要一種逐行讀取數(shù)據(jù)的機(jī)制,希望對Recordset中的某個記錄進(jìn)行操作。這就要用到游標(biāo)機(jī)制。游標(biāo)可以理解為很多個指向Recordset對象的指針,通過游標(biāo)用戶可以對指定位置記錄進(jìn)行處理。第12頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem前一條'單擊前一條按鈕后的執(zhí)行代碼PrivateSubCmdPrevious_Click()
‘移動記錄到前一條的方法是MovePrevious'在調(diào)用MovePrevious方法之前,首先需要判斷,當(dāng)前是不是已經(jīng)到了最前面'判斷方法是調(diào)用BOF屬性,如果BOF為真,則表示一定到了最前,不能移動'否則會出錯IfNotAdodc1.Recordset.BOFThen
Adodc1.Recordset.MovePreviousElse'如果為真,則移動到第一條記錄
Adodc1.Recordset.MoveFirstEndIfEndSub第13頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem后一條'單擊后一條按鈕后的執(zhí)行代碼PrivateSubCmdNext_Click()'移動記錄到下一條的方法是MoveNext'在調(diào)用MoveNext方法之前,首先需要判斷,當(dāng)前是不是已經(jīng)到了最后'判斷方法是調(diào)用EOF屬性,如果EOF為真,則表示一定到了最后,不能移動'否則會出錯IfNotAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveNextElse'如果為真,則移動到最后一條記錄
Adodc1.Recordset.MoveLastEndIfEndSub第14頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem尾記錄'單擊尾記錄按鈕后的執(zhí)行代碼PrivateSubCmdLast_Click()'調(diào)用MoveLast
Adodc1.Recordset.MoveLastEndSub第15頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem隱藏ADODC控件第16頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的體系結(jié)構(gòu)從以上的例子可以看出利用ADODC控件就可以開發(fā)出功能完備的vb數(shù)據(jù)庫系統(tǒng)了,但是ADO中的ADODB才真正體現(xiàn)了面向?qū)ο缶幊谭椒?,這也是大家今后學(xué)習(xí)其他編程工具的精髓。第17頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的體系結(jié)構(gòu)ADODB主要包括3個對象:Connection對象、Recordset對象和Command對象。Connection對象的作用就是建立客戶機(jī)和服務(wù)器之間的數(shù)據(jù)通道;Recordset對象的作用是在客戶機(jī)內(nèi)存中開辟的一塊區(qū)域,該區(qū)域存儲的就是從數(shù)據(jù)庫中按照要求提取出來的數(shù)據(jù);Command對象是用來執(zhí)行SQL語句或存儲過程的對象。(用得很少)第18頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem引用ADODB對象使用ADODB對象的方法和ADODC控件不一樣,ADODB是沒有圖形化的控件,所以使用ADODB對象的方法是首先進(jìn)行引用,然后進(jìn)行實例化。第19頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem引用ADODB對象第20頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem不同的計算機(jī)環(huán)境和安裝的軟件不一樣,導(dǎo)致出現(xiàn)的ADODB可用的版本可能有多種,在開發(fā)時常見的是ADODB2.6,這是幾乎所有的windows操作系統(tǒng)都支持的。第21頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem實例化ADODB對象引用了ADODB后僅僅是告訴vb程序中將要使用ADODB對象了,這樣在編譯程序時將自動尋找ADODB對象的定義,而不會出現(xiàn)用戶類型未定義的提示信息。ADODB引入后,下面需要實例化ADODB,生成自己程序中要使用的對象。第22頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem實例化對象的方法如下:Dim對象實例名稱asnew對象庫名稱.對象類型名稱例如:DimconnAsNewADODB.ConnectionDimrsasnewadodb.recordset第23頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的Connection對象Connection對象的使用方法舉例:第24頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem'定義一個名為conn的connection對象,好比是買了自來水管道DimconnAsNewADODB.Connection'定義字符串類型的連接串DimconnstrAsString'單擊實例化Connection對象按鈕后的執(zhí)行代碼PrivateSubCmdExecute_Click()connstr="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=db_student;DataSource=lq"conn.ConnectionString=connstr'打開服務(wù)器上的水閘
conn.Openconnstr'中間的處理過程'......'關(guān)閉服務(wù)器的水閘
conn.Close'撤銷管道,釋放系統(tǒng)資源
Setconn=NothingMsgBox"成功完成Connection對象的操作流程",,"成功提示"EndSub'單擊退出按鈕后的執(zhí)行代碼PrivateSubCmdExit_Click()UnloadMeEndSub第25頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem第26頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的Recordset對象Recordset對象的使用方法舉例:第27頁,共29頁,2023年,2月20日,星期六AnIntroductiontoDatabaseSystem'定義一個名為conn的connection對象,好比是買了自來水管道DimconnAsNewADODB.Connectio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度牧業(yè)產(chǎn)業(yè)扶貧項目承包合同范本3篇
- 2025版農(nóng)產(chǎn)品溯源與質(zhì)量認(rèn)證服務(wù)合同3篇
- 遼寧省朝陽市北票市2024-2025學(xué)年七年級上學(xué)期1月期末道德與法治試題(含答案)
- 2025年度個人公司股權(quán)結(jié)構(gòu)調(diào)整合同4篇
- 二零二五年度某局勞務(wù)分包結(jié)算與數(shù)字化轉(zhuǎn)型戰(zhàn)略合同2篇
- 天然氣在科技創(chuàng)新中的地位考核試卷
- 家禽飼養(yǎng)業(yè)質(zhì)量品牌提升與市場競爭策略考核試卷
- 供應(yīng)鏈協(xié)同采購與供應(yīng)商管理考核試卷
- 儀器儀表制造業(yè)的持續(xù)創(chuàng)新能力考核試卷
- 2025版二零二五年度美發(fā)店房東租賃合同范本:租賃合作協(xié)議4篇
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動站儀器運(yùn)營維護(hù)項目操作說明以及簡單故障處理
- 2022年12月Python-一級等級考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識
評論
0/150
提交評論