




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)的演講AnIntroductiontoDatabaseSystem第1頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADO的形象化理解我們通過(guò)一個(gè)生活中的例子來(lái)理解ADO對(duì)象的作用。日常生活中我們引用的自來(lái)水是從遠(yuǎn)程的水庫(kù)經(jīng)過(guò)鋪設(shè)的管道,最后流入千家萬(wàn)戶的,如果我們把SQLServer2000服務(wù)器比喻為水庫(kù),把數(shù)據(jù)比喻為水的話,那么ADO對(duì)象就是鋪設(shè)的自來(lái)水管道。與生活中例子不同的是,數(shù)據(jù)庫(kù)系統(tǒng)操作的數(shù)據(jù)還可能通過(guò)這條數(shù)據(jù)管道最后回流SQLServer2000數(shù)據(jù)庫(kù)。有了ADO,我們?cè)陂_(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)就非常簡(jiǎn)單,大量的工作在開(kāi)發(fā)前臺(tái)應(yīng)用界面上,然后將界面中顯示數(shù)據(jù)的控件和ADO對(duì)象進(jìn)行銜接即可。第2頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADO的分類(lèi)ADO技術(shù)在實(shí)現(xiàn)上又分為ADODC和ADODB兩種。兩者的功能幾乎完全一樣,只是在實(shí)現(xiàn)的具體方式上有所不同。ADODC是一個(gè)圖形化的ActiveX控件,而ADODB不以圖形化控件的方式出現(xiàn)。第3頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADO的分類(lèi)ADODC控件提供了有限的一些接口參數(shù)、屬性和方法,初學(xué)者通過(guò)簡(jiǎn)單的配置后就可以掌握該控件的使用方法,從而快速掌握ADO技術(shù)。ADODC提供了存取數(shù)據(jù)庫(kù)數(shù)據(jù)的功能,但畢竟靈活性有限。要通過(guò)ADO技術(shù)開(kāi)發(fā)出強(qiáng)大的、靈活的數(shù)據(jù)庫(kù)項(xiàng)目,就需要學(xué)習(xí)ADODB編程技術(shù)。在VisualBasic這樣的可視化編程工具中,既提供了ADODB,也提供了ADODC,兩者既可以單獨(dú)使用,也可以同時(shí)使用。第4頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem前面我們利用ADODC控件編寫(xiě)了一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)程序,下面來(lái)了解一個(gè)稍微復(fù)雜的ADODC控件編程實(shí)例,通過(guò)本例的學(xué)習(xí),大家可以進(jìn)一步掌握ADO的基本概念,之后再來(lái)學(xué)習(xí)ADODB就會(huì)比較容易。第5頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODC編程ADODC如何連接數(shù)據(jù)庫(kù)顯示數(shù)據(jù)控件如何設(shè)置邏輯代碼的處理第6頁(yè),共29頁(yè),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控件的記錄集,表示從目的表中提取出來(lái)的內(nèi)存中的數(shù)據(jù)。AddNew是在內(nèi)存中添加一條記錄的方法。添加的記錄這時(shí)并沒(méi)有真正寫(xiě)入物理上的數(shù)據(jù)庫(kù)中,而是存在于內(nèi)存中,然后調(diào)用UPDATE方法才能將數(shù)據(jù)真正添加第7頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem刪除'單擊刪除按鈕后的執(zhí)行代碼PrivateSubCmdDelete_Click()DimAnsAsInteger'在刪除記錄之前對(duì)用戶有一個(gè)警告Ans=MsgBox("確定刪除該記錄嗎?",vbYesNo,"警告")IfAns=vbYesThen
Adodc1.Recordset.DeleteEndIfEndSub第8頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem修改'單擊修改按鈕后的執(zhí)行代碼PrivateSubCmdUpdate_Click()'直接對(duì)文本框中的數(shù)據(jù)進(jìn)行修改就可以,然后單擊保存按鈕就可以CmdInsert.Enabled=FalseCmdDelete.Enabled=FalseCmdUpdate.Enabled=TrueCmdCancel.Enabled=TrueCmdSave.Enabled=TrueCmdFirst.Enabled=FalseCmdPrevious.Enabled=FalseCmdNext.Enabled=FalseCmdLast.Enabled=FalseEndSub因?yàn)轱@示數(shù)據(jù)控件直接取之于Adodc1控件,也是直接在內(nèi)存中對(duì)數(shù)據(jù)進(jìn)行操作,所以對(duì)記錄集進(jìn)行修改直接在控件中過(guò)修改既可。修改后的數(shù)據(jù)需要調(diào)用update方法才能真正寫(xiě)入數(shù)據(jù)庫(kù)中。第9頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem保存'單擊保存按鈕后的執(zhí)行代碼PrivateSubCmdSave_Click()'通過(guò)Update方法將Recordset中的數(shù)據(jù)提交到數(shù)據(jù)庫(kù)
Adodc1.Recordset.Update'恢復(fù)其他控件的屬性CmdInsert.Enabled=TrueCmdDelete.Enabled=TrueCmdUpdate.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=True'同時(shí)使保存和取消按鈕失效CmdSave.Enabled=FalseCmdCancel.Enabled=FalseEndSub記錄集的update方法用來(lái)完成將內(nèi)存中更改后的記錄集提交到物理數(shù)據(jù)庫(kù)中,即真正將數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)。第10頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem取消'單擊取消按鈕后的執(zhí)行代碼PrivateSubCmdCancel_Click()'通過(guò)CancelUpdate方法取消對(duì)數(shù)據(jù)的保存
Adodc1.Recordset.CancelUpdate'恢復(fù)其他控件的屬性CmdInsert.Enabled=TrueCmdDelete.Enabled=TrueCmdUpdate.Enabled=TrueCmdFirst.Enabled=TrueCmdPrevious.Enabled=TrueCmdNext.Enabled=TrueCmdLast.Enabled=True'同時(shí)使保存和取消按鈕失效CmdSave.Enabled=FalseCmdCancel.Enabled=FalseEndSub記錄集的CancelUpdate方法用于取消對(duì)內(nèi)存中記錄的修改第11頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem首記錄'單擊首記錄按鈕后的執(zhí)行代碼PrivateSubCmdFirst_Click()'調(diào)用MoveFirst方法指向記錄集的首記錄
Adodc1.Recordset.MoveFirstEndSub記錄集的MoveFirst方法表示將游標(biāo)移動(dòng)到記錄集的第一條記錄。什么是cursor(游標(biāo))?Recordset是內(nèi)存中的一塊特殊的部分,它在內(nèi)存中是一個(gè)密不可分的整體。我們無(wú)法把它拆開(kāi)來(lái)訪問(wèn),而應(yīng)用程序一般需要一種逐行讀取數(shù)據(jù)的機(jī)制,希望對(duì)Recordset中的某個(gè)記錄進(jìn)行操作。這就要用到游標(biāo)機(jī)制。游標(biāo)可以理解為很多個(gè)指向Recordset對(duì)象的指針,通過(guò)游標(biāo)用戶可以對(duì)指定位置記錄進(jìn)行處理。第12頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem前一條'單擊前一條按鈕后的執(zhí)行代碼PrivateSubCmdPrevious_Click()
‘移動(dòng)記錄到前一條的方法是MovePrevious'在調(diào)用MovePrevious方法之前,首先需要判斷,當(dāng)前是不是已經(jīng)到了最前面'判斷方法是調(diào)用BOF屬性,如果BOF為真,則表示一定到了最前,不能移動(dòng)'否則會(huì)出錯(cuò)IfNotAdodc1.Recordset.BOFThen
Adodc1.Recordset.MovePreviousElse'如果為真,則移動(dòng)到第一條記錄
Adodc1.Recordset.MoveFirstEndIfEndSub第13頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem后一條'單擊后一條按鈕后的執(zhí)行代碼PrivateSubCmdNext_Click()'移動(dòng)記錄到下一條的方法是MoveNext'在調(diào)用MoveNext方法之前,首先需要判斷,當(dāng)前是不是已經(jīng)到了最后'判斷方法是調(diào)用EOF屬性,如果EOF為真,則表示一定到了最后,不能移動(dòng)'否則會(huì)出錯(cuò)IfNotAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveNextElse'如果為真,則移動(dòng)到最后一條記錄
Adodc1.Recordset.MoveLastEndIfEndSub第14頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem尾記錄'單擊尾記錄按鈕后的執(zhí)行代碼PrivateSubCmdLast_Click()'調(diào)用MoveLast
Adodc1.Recordset.MoveLastEndSub第15頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem隱藏ADODC控件第16頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的體系結(jié)構(gòu)從以上的例子可以看出利用ADODC控件就可以開(kāi)發(fā)出功能完備的vb數(shù)據(jù)庫(kù)系統(tǒng)了,但是ADO中的ADODB才真正體現(xiàn)了面向?qū)ο缶幊谭椒?,這也是大家今后學(xué)習(xí)其他編程工具的精髓。第17頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的體系結(jié)構(gòu)ADODB主要包括3個(gè)對(duì)象:Connection對(duì)象、Recordset對(duì)象和Command對(duì)象。Connection對(duì)象的作用就是建立客戶機(jī)和服務(wù)器之間的數(shù)據(jù)通道;Recordset對(duì)象的作用是在客戶機(jī)內(nèi)存中開(kāi)辟的一塊區(qū)域,該區(qū)域存儲(chǔ)的就是從數(shù)據(jù)庫(kù)中按照要求提取出來(lái)的數(shù)據(jù);Command對(duì)象是用來(lái)執(zhí)行SQL語(yǔ)句或存儲(chǔ)過(guò)程的對(duì)象。(用得很少)第18頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem引用ADODB對(duì)象使用ADODB對(duì)象的方法和ADODC控件不一樣,ADODB是沒(méi)有圖形化的控件,所以使用ADODB對(duì)象的方法是首先進(jìn)行引用,然后進(jìn)行實(shí)例化。第19頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem引用ADODB對(duì)象第20頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem不同的計(jì)算機(jī)環(huán)境和安裝的軟件不一樣,導(dǎo)致出現(xiàn)的ADODB可用的版本可能有多種,在開(kāi)發(fā)時(shí)常見(jiàn)的是ADODB2.6,這是幾乎所有的windows操作系統(tǒng)都支持的。第21頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem實(shí)例化ADODB對(duì)象引用了ADODB后僅僅是告訴vb程序中將要使用ADODB對(duì)象了,這樣在編譯程序時(shí)將自動(dòng)尋找ADODB對(duì)象的定義,而不會(huì)出現(xiàn)用戶類(lèi)型未定義的提示信息。ADODB引入后,下面需要實(shí)例化ADODB,生成自己程序中要使用的對(duì)象。第22頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem實(shí)例化對(duì)象的方法如下:Dim對(duì)象實(shí)例名稱(chēng)asnew對(duì)象庫(kù)名稱(chēng).對(duì)象類(lèi)型名稱(chēng)例如:DimconnAsNewADODB.ConnectionDimrsasnewadodb.recordset第23頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的Connection對(duì)象Connection對(duì)象的使用方法舉例:第24頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem'定義一個(gè)名為conn的connection對(duì)象,好比是買(mǎi)了自來(lái)水管道DimconnAsNewADODB.Connection'定義字符串類(lèi)型的連接串DimconnstrAsString'單擊實(shí)例化Connection對(duì)象按鈕后的執(zhí)行代碼PrivateSubCmdExecute_Click()connstr="Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=db_student;DataSource=lq"conn.ConnectionString=connstr'打開(kāi)服務(wù)器上的水閘
conn.Openconnstr'中間的處理過(guò)程'......'關(guān)閉服務(wù)器的水閘
conn.Close'撤銷(xiāo)管道,釋放系統(tǒng)資源
Setconn=NothingMsgBox"成功完成Connection對(duì)象的操作流程",,"成功提示"EndSub'單擊退出按鈕后的執(zhí)行代碼PrivateSubCmdExit_Click()UnloadMeEndSub第25頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem第26頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystemADODB的Recordset對(duì)象Recordset對(duì)象的使用方法舉例:第27頁(yè),共29頁(yè),2023年,2月20日,星期六AnIntroductiontoDatabaseSystem'定義一個(gè)名為conn的connection對(duì)象,好比是買(mǎi)了自來(lái)水管道DimconnAsNewADODB.Connectio
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)合同范本海南
- 2025年硬質(zhì)橡膠及其制品合作協(xié)議書(shū)
- 2025年孕產(chǎn)婦保健項(xiàng)目建議書(shū)
- 合伙酒店轉(zhuǎn)讓合同范本
- epc工程總價(jià)合同范本
- 信貸機(jī)構(gòu)合同范本
- 創(chuàng)業(yè)魔芋種植合作合同范本
- 合伙奶茶協(xié)議合同范本
- 低價(jià)手套租賃合同范本
- 南寧個(gè)人租房合同范本
- 上??萍及嫘W(xué)二年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)全冊(cè)教案
- 氣缸磨損的測(cè)量說(shuō)課教案
- 《高鐵乘務(wù)安全管理及應(yīng)急處置》課程教案-崔藝琳編寫(xiě)
- 新課程標(biāo)準(zhǔn)2022版初中歷史考試題及答案
- 前言 馬克思主義中國(guó)化時(shí)代化的歷史進(jìn)程與理論成果
- 產(chǎn)品可靠性測(cè)試計(jì)劃
- 高等數(shù)學(xué)考研輔導(dǎo)課(一)學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫(kù)2023年
- 心理健康與職業(yè)生涯(中職)PPT完整全套教學(xué)課件
- 中國(guó)文藝美學(xué)要略·論著·《畫(huà)學(xué)心法問(wèn)答》
- 公共藝術(shù)-音樂(lè)篇(中職公共藝術(shù))PPT完整版全套教學(xué)課件
- 高等教育自學(xué)考試轉(zhuǎn)考轉(zhuǎn)出登記表
評(píng)論
0/150
提交評(píng)論