




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C/SC/SVBVB數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)z數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)結(jié)構(gòu)zVisual BasicVisual Basic快速入門快速入門z開放數(shù)據(jù)庫(kù)連接(開放數(shù)據(jù)庫(kù)連接(ODBCODBC)z數(shù)據(jù)訪問(wèn)接口(數(shù)據(jù)訪問(wèn)接口(ADOADO)zVBVB數(shù)據(jù)庫(kù)編程舉例數(shù)據(jù)庫(kù)編程舉例zVBVB開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)實(shí)例分析開發(fā)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)實(shí)例分析開放數(shù)據(jù)庫(kù)連接(開放數(shù)據(jù)庫(kù)連接(ODBCODBC)zODBCODBC概念概念zODBCODBC的構(gòu)成的構(gòu)成z建立建立ODBCODBC數(shù)據(jù)源數(shù)據(jù)源 ODBCODBC概念概念zODBC(開放數(shù)據(jù)庫(kù)接連,(開放數(shù)據(jù)庫(kù)接連,Open DataBase
2、Connectivity)是)是Microsoft公司開發(fā)的一套開放公司開發(fā)的一套開放的數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用程序接口標(biāo)準(zhǔn)。的數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用程序接口標(biāo)準(zhǔn)。 zODBC使得客戶端應(yīng)用不再緊密地依賴于數(shù)據(jù)庫(kù)使得客戶端應(yīng)用不再緊密地依賴于數(shù)據(jù)庫(kù)管理系統(tǒng),用戶有廣泛的挑選余地來(lái)選擇自己喜管理系統(tǒng),用戶有廣泛的挑選余地來(lái)選擇自己喜歡和熟悉的開發(fā)工具。歡和熟悉的開發(fā)工具。zODBC使數(shù)據(jù)庫(kù)應(yīng)用程序具有很好的適應(yīng)性和可使數(shù)據(jù)庫(kù)應(yīng)用程序具有很好的適應(yīng)性和可移植性,并且具備同時(shí)訪問(wèn)多種數(shù)據(jù)庫(kù)管理系統(tǒng)移植性,并且具備同時(shí)訪問(wèn)多種數(shù)據(jù)庫(kù)管理系統(tǒng)的能力。的能力。ODBCODBC的構(gòu)成的構(gòu)成v應(yīng)用程序應(yīng)用程序v驅(qū)動(dòng)程序管理器驅(qū)
3、動(dòng)程序管理器v驅(qū)動(dòng)程序驅(qū)動(dòng)程序v數(shù)據(jù)源數(shù)據(jù)源VB應(yīng)用程序驅(qū)動(dòng)程序管理器驅(qū)動(dòng)程序管理器數(shù)據(jù)源1數(shù)據(jù)源2數(shù)據(jù)源3數(shù)據(jù)源4驅(qū)動(dòng)程序管理器的工作驅(qū)動(dòng)程序管理器的工作z驅(qū)動(dòng)程序管理器是驅(qū)動(dòng)程序管理器是WindowsWindows下的應(yīng)用程序,其主下的應(yīng)用程序,其主要作用是:要作用是:y安裝指定的驅(qū)動(dòng)程序;安裝指定的驅(qū)動(dòng)程序;y定義數(shù)據(jù)源,并把數(shù)據(jù)源映射到具體的定義數(shù)據(jù)源,并把數(shù)據(jù)源映射到具體的ODBCODBC驅(qū)驅(qū)動(dòng)程序上動(dòng)程序上 ;y為每個(gè)驅(qū)動(dòng)程序提供為每個(gè)驅(qū)動(dòng)程序提供ODBCODBC函數(shù)的入口點(diǎn);函數(shù)的入口點(diǎn);y檢查檢查ODBCODBC參數(shù)的合法性參數(shù)的合法性等。等。ODBC驅(qū)動(dòng)程序的具體任務(wù)z OD
4、BCODBC應(yīng)用程序不能直接存取數(shù)據(jù)庫(kù),它將所要執(zhí)行的操作提應(yīng)用程序不能直接存取數(shù)據(jù)庫(kù),它將所要執(zhí)行的操作提交給數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,通過(guò)驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操交給數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,通過(guò)驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)數(shù)據(jù)庫(kù)的各種操作,數(shù)據(jù)庫(kù)操作結(jié)果也通過(guò)驅(qū)動(dòng)程序返回給應(yīng)用程序。作,數(shù)據(jù)庫(kù)操作結(jié)果也通過(guò)驅(qū)動(dòng)程序返回給應(yīng)用程序。ODBCODBC驅(qū)動(dòng)程序的具體任務(wù)有:驅(qū)動(dòng)程序的具體任務(wù)有:y建立與數(shù)據(jù)源的連接;建立與數(shù)據(jù)源的連接;y向數(shù)據(jù)源提交向數(shù)據(jù)源提交SQLSQL請(qǐng)求;請(qǐng)求;y處理查詢結(jié)果;處理查詢結(jié)果;y將數(shù)據(jù)源錯(cuò)誤轉(zhuǎn)換為標(biāo)準(zhǔn)錯(cuò)誤代碼,返回給應(yīng)用程序;將數(shù)據(jù)源錯(cuò)誤轉(zhuǎn)換為標(biāo)準(zhǔn)錯(cuò)誤代碼,返回給應(yīng)用程序;y提交事務(wù)的
5、開始請(qǐng)求、完成請(qǐng)求和撤消請(qǐng)求等。提交事務(wù)的開始請(qǐng)求、完成請(qǐng)求和撤消請(qǐng)求等。什么是數(shù)據(jù)源z 數(shù)據(jù)源數(shù)據(jù)源是是指任何一種可以通過(guò)指任何一種可以通過(guò)ODBCODBC連接的數(shù)據(jù)庫(kù)管理系統(tǒng),包括要訪問(wèn)連接的數(shù)據(jù)庫(kù)管理系統(tǒng),包括要訪問(wèn)的數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)的運(yùn)行平臺(tái)(包括數(shù)據(jù)庫(kù)管理系統(tǒng)和運(yùn)行數(shù)據(jù)庫(kù)管理的數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)的運(yùn)行平臺(tái)(包括數(shù)據(jù)庫(kù)管理系統(tǒng)和運(yùn)行數(shù)據(jù)庫(kù)管理系統(tǒng)的服務(wù)器)。系統(tǒng)的服務(wù)器)。它可以是它可以是PC平臺(tái)上的平臺(tái)上的FoxPro數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)、Windows 平平臺(tái)上的臺(tái)上的SQL Server數(shù)據(jù)庫(kù)或數(shù)據(jù)庫(kù)或OS/2平臺(tái)的平臺(tái)的Oracle數(shù)據(jù)庫(kù)等。數(shù)據(jù)庫(kù)等。z 數(shù)據(jù)源名數(shù)據(jù)源名掩蓋了數(shù)據(jù)庫(kù)服務(wù)器
6、之間的差別,通過(guò)定義多個(gè)數(shù)據(jù)源,讓每掩蓋了數(shù)據(jù)庫(kù)服務(wù)器之間的差別,通過(guò)定義多個(gè)數(shù)據(jù)源,讓每個(gè)數(shù)據(jù)源名對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)中的指定數(shù)據(jù)庫(kù),這樣就可以實(shí)現(xiàn)個(gè)數(shù)據(jù)源名對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)中的指定數(shù)據(jù)庫(kù),這樣就可以實(shí)現(xiàn)在應(yīng)用程序中通過(guò)數(shù)據(jù)源名而不是具體的數(shù)據(jù)庫(kù)名訪問(wèn)指數(shù)據(jù)庫(kù)的目的。在應(yīng)用程序中通過(guò)數(shù)據(jù)源名而不是具體的數(shù)據(jù)庫(kù)名訪問(wèn)指數(shù)據(jù)庫(kù)的目的。建立建立ODBCODBC數(shù)據(jù)源數(shù)據(jù)源z可以通過(guò)Windows的控制面板可以建立ODBC數(shù)據(jù)源。 z建立步驟為: zODBC數(shù)據(jù)源共有三種數(shù)據(jù)源共有三種類型,第一種是用戶數(shù)據(jù)類型,第一種是用戶數(shù)據(jù)源(用戶源(用戶DSN),第二種),第二種是系統(tǒng)數(shù)據(jù)源(系統(tǒng)是系
7、統(tǒng)數(shù)據(jù)源(系統(tǒng)DSN),第三種是文件數(shù)),第三種是文件數(shù)據(jù)源(文件據(jù)源(文件DSN)。)。z用戶用戶DSN只能用于當(dāng)前只能用于當(dāng)前定義此數(shù)據(jù)源的機(jī)器上,定義此數(shù)據(jù)源的機(jī)器上,而且只有定義數(shù)據(jù)源的用而且只有定義數(shù)據(jù)源的用戶才可以使用;戶才可以使用;系統(tǒng)系統(tǒng)DSN可用于當(dāng)前機(jī)器上的所有可用于當(dāng)前機(jī)器上的所有用戶;用戶;文件文件DSN是將用戶是將用戶定義的數(shù)據(jù)源信息保存到定義的數(shù)據(jù)源信息保存到一個(gè)文件中,并可被所有一個(gè)文件中,并可被所有安裝了相同驅(qū)動(dòng)程序的不安裝了相同驅(qū)動(dòng)程序的不同機(jī)器上的用戶共享。同機(jī)器上的用戶共享。新建數(shù)據(jù)源新建數(shù)據(jù)源數(shù)據(jù)訪問(wèn)接口(數(shù)據(jù)訪問(wèn)接口(ADOADO)z訪問(wèn)數(shù)據(jù)庫(kù)的幾種方
8、式訪問(wèn)數(shù)據(jù)庫(kù)的幾種方式z一致的數(shù)據(jù)訪問(wèn)策略一致的數(shù)據(jù)訪問(wèn)策略z ADO對(duì)象模型對(duì)象模型zADO數(shù)據(jù)控件與數(shù)據(jù)綁定控件數(shù)據(jù)控件與數(shù)據(jù)綁定控件 訪問(wèn)數(shù)據(jù)庫(kù)的幾種方式訪問(wèn)數(shù)據(jù)庫(kù)的幾種方式z使用數(shù)據(jù)訪問(wèn)接口使用數(shù)據(jù)訪問(wèn)接口(對(duì)象模型)(對(duì)象模型)yActiveX數(shù)據(jù)對(duì)象(數(shù)據(jù)對(duì)象(ADO,ActiveX Data Objects )y遠(yuǎn)程數(shù)據(jù)對(duì)象(遠(yuǎn)程數(shù)據(jù)對(duì)象(RDO,Remote Data Objects )y數(shù)據(jù)訪問(wèn)對(duì)象(數(shù)據(jù)訪問(wèn)對(duì)象(DAO,Data Access Objects)z使用控件數(shù)據(jù)庫(kù)表記錄使用控件數(shù)據(jù)庫(kù)表記錄 此方法局限性強(qiáng),處理數(shù)據(jù)量小。此方法局限性強(qiáng),處理數(shù)據(jù)量小。z直接調(diào)用直
9、接調(diào)用ODBC API(應(yīng)用程序編程接口)(應(yīng)用程序編程接口) (Application Programming Interface)編程復(fù)雜。)編程復(fù)雜。一致的數(shù)據(jù)訪問(wèn)策略的體系結(jié)構(gòu)一致的數(shù)據(jù)訪問(wèn)策略的體系結(jié)構(gòu)前前 端端 應(yīng)應(yīng) 用用 程程 序序ADOOLE DB提供者提供者 提供者提供者 提供者提供者 提供者提供者 VSAM/ISAME-mail消消息息目錄目錄服務(wù)服務(wù)ODBC 提供者提供者 文件文件系統(tǒng)系統(tǒng)關(guān)系數(shù)據(jù)關(guān)系數(shù)據(jù)庫(kù)庫(kù)ADOADO對(duì)象模型對(duì)象模型zADO是面向?qū)ο蟮氖敲嫦驅(qū)ο蟮腁PI,它只需開發(fā)者掌握幾個(gè),它只需開發(fā)者掌握幾個(gè)簡(jiǎn)單對(duì)象的方法和屬性。簡(jiǎn)單對(duì)象的方法和屬性。z ADO對(duì)
10、象模型中包含了三核心對(duì)象:對(duì)象模型中包含了三核心對(duì)象:Connection、Command和和Recordset。z開發(fā)人員可以創(chuàng)建這三個(gè)對(duì)象并使用這些對(duì)象訪開發(fā)人員可以創(chuàng)建這三個(gè)對(duì)象并使用這些對(duì)象訪問(wèn)數(shù)據(jù)庫(kù)。問(wèn)數(shù)據(jù)庫(kù)。z在在ADO對(duì)象模型中還有幾個(gè)其他對(duì)象:對(duì)象模型中還有幾個(gè)其他對(duì)象:Field、Property、Error和和Parameter,它們是前面三個(gè),它們是前面三個(gè)對(duì)象的子對(duì)象。對(duì)象的子對(duì)象。這些對(duì)象的描述如下:這些對(duì)象的描述如下: zConnection對(duì)象對(duì)象:包含了與數(shù)據(jù)源連接的信息。:包含了與數(shù)據(jù)源連接的信息。zCommand對(duì)象對(duì)象:定義一個(gè):定義一個(gè)SQLSQL語(yǔ)句、
11、存儲(chǔ)過(guò)程等與命語(yǔ)句、存儲(chǔ)過(guò)程等與命令相關(guān)的信息。令相關(guān)的信息。zRecordset對(duì)象對(duì)象:包含了從數(shù)據(jù)源得到的記錄集。:包含了從數(shù)據(jù)源得到的記錄集。zField對(duì)象對(duì)象:包含了記錄集中的某個(gè)記錄的字段信息。:包含了記錄集中的某個(gè)記錄的字段信息。字段信息包括字段的數(shù)據(jù)類型、精度和數(shù)據(jù)范圍等。字段信息包括字段的數(shù)據(jù)類型、精度和數(shù)據(jù)范圍等。zProperty對(duì)象對(duì)象:ADO對(duì)象的屬性集。對(duì)象的屬性集。zParameter對(duì)象對(duì)象:保存與:保存與Command對(duì)象相關(guān)的參數(shù)。對(duì)象相關(guān)的參數(shù)。zError對(duì)象對(duì)象:包含了由數(shù)據(jù)源產(chǎn)生的:包含了由數(shù)據(jù)源產(chǎn)生的Errors集合中的集合中的擴(kuò)展的錯(cuò)誤信息。由
12、于一個(gè)單獨(dú)的語(yǔ)句會(huì)產(chǎn)生一個(gè)或擴(kuò)展的錯(cuò)誤信息。由于一個(gè)單獨(dú)的語(yǔ)句會(huì)產(chǎn)生一個(gè)或多個(gè)錯(cuò)誤,因此多個(gè)錯(cuò)誤,因此Errors集合可以同時(shí)包括一個(gè)和多個(gè)集合可以同時(shí)包括一個(gè)和多個(gè)Error對(duì)象。對(duì)象。ADO對(duì)象模型對(duì)象模型ConnectionErrorCommandParameterRecordsetFieldPropertyPropertyPropertyPropertyADOADO數(shù)據(jù)控件與數(shù)據(jù)綁定控件數(shù)據(jù)控件與數(shù)據(jù)綁定控件zADO數(shù)據(jù)控件是使用數(shù)據(jù)控件是使用ADO數(shù)據(jù)對(duì)象來(lái)快速數(shù)據(jù)對(duì)象來(lái)快速建立應(yīng)用程序和數(shù)據(jù)源之間的連接,并快建立應(yīng)用程序和數(shù)據(jù)源之間的連接,并快速創(chuàng)建數(shù)據(jù)訪問(wèn)結(jié)果記錄集的工具。速創(chuàng)建
13、數(shù)據(jù)訪問(wèn)結(jié)果記錄集的工具。z由于由于ADO數(shù)據(jù)控件不具有顯示數(shù)據(jù)的功能,數(shù)據(jù)控件不具有顯示數(shù)據(jù)的功能,因此要將數(shù)據(jù)操作結(jié)果在用戶界面上顯示因此要將數(shù)據(jù)操作結(jié)果在用戶界面上顯示出來(lái),就要靠數(shù)據(jù)綁定控件來(lái)實(shí)現(xiàn)。出來(lái),就要靠數(shù)據(jù)綁定控件來(lái)實(shí)現(xiàn)。zADO數(shù)據(jù)控件數(shù)據(jù)控件z數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件ADOADO數(shù)據(jù)控件數(shù)據(jù)控件z在在VB的工具箱中添加的工具箱中添加ADO數(shù)據(jù)控件數(shù)據(jù)控件zADODC對(duì)象的主要屬性、方法和事件對(duì)象的主要屬性、方法和事件zRecordSet對(duì)象的主要屬性和方法對(duì)象的主要屬性和方法y RecordSetRecordSet對(duì)象的主要屬性對(duì)象的主要屬性y FieldsFields對(duì)象
14、屬性對(duì)象屬性y RecordSetRecordSet對(duì)象的主要方法對(duì)象的主要方法在在VBVB的工具箱中添加的工具箱中添加ADOADO數(shù)據(jù)控件數(shù)據(jù)控件ADO數(shù)據(jù)控件(數(shù)據(jù)控件(ADODC)ADODC在窗體中的樣式在窗體中的樣式ADODCADODC對(duì)象的主要屬性、方法和事件對(duì)象的主要屬性、方法和事件zADODCADODC對(duì)象的主要屬性對(duì)象的主要屬性zADODCADODC對(duì)象的主要方法對(duì)象的主要方法zADODCADODC對(duì)象的主要事件對(duì)象的主要事件ADODCADODC對(duì)象的主要屬性對(duì)象的主要屬性zConnectionStringConnectionString屬性屬性 (用于連接數(shù)據(jù)源)(用于連接數(shù)
15、據(jù)源)zCommand屬性屬性yRecordSourceRecordSource屬性屬性yCommandTypeCommandType屬性屬性 zRecordsetRecordset屬性屬性 ConnectionStringConnectionString屬性設(shè)置步驟屬性設(shè)置步驟z使用使用ODBC數(shù)據(jù)資源名稱數(shù)據(jù)資源名稱 以建立以建立ODBC數(shù)據(jù)源時(shí)使用數(shù)據(jù)源時(shí)使用z使用連接字符串使用連接字符串 未建立未建立ODBC數(shù)據(jù)源時(shí)使用數(shù)據(jù)源時(shí)使用使用ODBC數(shù)據(jù)資源名稱使用連接字符串RecordSourceRecordSource屬性屬性z 此屬性用于設(shè)置此屬性用于設(shè)置ADO結(jié)果集的內(nèi)結(jié)果集的內(nèi)容,
16、這個(gè)內(nèi)容可容,這個(gè)內(nèi)容可以來(lái)自于一張表,以來(lái)自于一張表,也可以來(lái)自一個(gè)也可以來(lái)自一個(gè)查詢語(yǔ)句,也可查詢語(yǔ)句,也可以來(lái)自一個(gè)存儲(chǔ)以來(lái)自一個(gè)存儲(chǔ)過(guò)程的執(zhí)行結(jié)果。過(guò)程的執(zhí)行結(jié)果。z RecordSource屬屬性的值與性的值與CommandType屬性的值有關(guān),屬性的值有關(guān),兩者協(xié)同使用。兩者協(xié)同使用。CommandTypeCommandType屬性屬性z 此屬性指明命令的類型,即要訪問(wèn)的數(shù)據(jù)的來(lái)源。一般這此屬性指明命令的類型,即要訪問(wèn)的數(shù)據(jù)的來(lái)源。一般這個(gè)屬性和個(gè)屬性和RecordSource(記錄源)屬性配合使用。(記錄源)屬性配合使用。z CommandType屬性的取值有如下四個(gè):屬性的取值
17、有如下四個(gè):yadCmdUnknown:默認(rèn)值。表示:默認(rèn)值。表示RecordSource中的命令類型中的命令類型未知。未知。yadCmdTable:RecordSource屬性的內(nèi)容是一個(gè)表名,表示其屬性的內(nèi)容是一個(gè)表名,表示其結(jié)果集是對(duì)此表執(zhí)行的無(wú)條件查詢的結(jié)果。結(jié)果集是對(duì)此表執(zhí)行的無(wú)條件查詢的結(jié)果。yadCmdText:RecordSource屬性的內(nèi)容是一個(gè)查詢語(yǔ)句文本屬性的內(nèi)容是一個(gè)查詢語(yǔ)句文本串,表示其結(jié)果集是執(zhí)行此查詢語(yǔ)句文本串產(chǎn)生的結(jié)果。串,表示其結(jié)果集是執(zhí)行此查詢語(yǔ)句文本串產(chǎn)生的結(jié)果。yadCmdStoredProc:RecordSource屬性的內(nèi)容是一個(gè)存儲(chǔ)過(guò)屬性的內(nèi)容是
18、一個(gè)存儲(chǔ)過(guò)程名,表示其結(jié)果集是執(zhí)行此存儲(chǔ)過(guò)程產(chǎn)生的結(jié)果。程名,表示其結(jié)果集是執(zhí)行此存儲(chǔ)過(guò)程產(chǎn)生的結(jié)果。z 設(shè)置設(shè)置CommandType屬性的方法參見設(shè)置屬性的方法參見設(shè)置RecordSource部分。部分。CommandTypeCommandType屬性設(shè)置步驟屬性設(shè)置步驟RecordsetRecordset屬性屬性zRecordset屬性是屬性是ADO數(shù)據(jù)控件中實(shí)現(xiàn)數(shù)數(shù)據(jù)控件中實(shí)現(xiàn)數(shù)據(jù)記錄操作的最重要的屬性據(jù)記錄操作的最重要的屬性z這個(gè)屬性本身又是一個(gè)對(duì)象,也有自己的這個(gè)屬性本身又是一個(gè)對(duì)象,也有自己的屬性和方法,它直接指向?qū)傩院头椒?,它直接指向ADO對(duì)象模型中對(duì)象模型中的的Records
19、et對(duì)象。對(duì)象。z稍后介紹該對(duì)象稍后介紹該對(duì)象 ADODCADODC對(duì)象的主要方法對(duì)象的主要方法z ADODC控件最常用的是控件最常用的是Refresh方法。方法。z Refresh方法用于更新方法用于更新ADODC控件屬性,使修改后的控件屬性,使修改后的ADO數(shù)據(jù)控件屬性生效。數(shù)據(jù)控件屬性生效。z 當(dāng)修改了當(dāng)修改了ADODC控件的控件的ConnectionString屬性的值時(shí),屬性的值時(shí),使用使用Refresh方法會(huì)重新連接一次數(shù)據(jù)庫(kù);當(dāng)修改了方法會(huì)重新連接一次數(shù)據(jù)庫(kù);當(dāng)修改了ADODC控件的控件的RecordSource屬性的值時(shí),使用屬性的值時(shí),使用Refresh方法會(huì)重新執(zhí)行方法會(huì)重
20、新執(zhí)行RecordSource屬性的內(nèi)容,重屬性的內(nèi)容,重新產(chǎn)生結(jié)果集。新產(chǎn)生結(jié)果集。z 使用使用Refresh方法的格式為:方法的格式為: ADODC控件名控件名.Refresh ADODCADODC對(duì)象的主要事件對(duì)象的主要事件z EndOfRecordset事件事件:當(dāng)在結(jié)果集中移動(dòng)記錄指針時(shí),當(dāng)記錄指針超:當(dāng)在結(jié)果集中移動(dòng)記錄指針時(shí),當(dāng)記錄指針超出了結(jié)果集的最后一條記錄時(shí),觸發(fā)此事件。出了結(jié)果集的最后一條記錄時(shí),觸發(fā)此事件。z Error事件事件:只有在沒(méi)有執(zhí)行任何:只有在沒(méi)有執(zhí)行任何VB代碼而發(fā)生了一個(gè)數(shù)據(jù)訪問(wèn)錯(cuò)誤時(shí),代碼而發(fā)生了一個(gè)數(shù)據(jù)訪問(wèn)錯(cuò)誤時(shí),才會(huì)觸發(fā)此事件。才會(huì)觸發(fā)此事件。z
21、WillChangeField事件和事件和FieldChangeComplete事件事件:當(dāng)對(duì)結(jié)果集中:當(dāng)對(duì)結(jié)果集中的一個(gè)或多個(gè)字段值進(jìn)行修改前,觸發(fā)的一個(gè)或多個(gè)字段值進(jìn)行修改前,觸發(fā)WillChangeField事件;當(dāng)對(duì)結(jié)事件;當(dāng)對(duì)結(jié)果集中的一個(gè)或多個(gè)字段值修改之后,觸發(fā)果集中的一個(gè)或多個(gè)字段值修改之后,觸發(fā)FieldChangeComplete事事件。件。z WillChangeRecord事件和事件和RecordChangeComplete事件事件:當(dāng)對(duì)結(jié)果:當(dāng)對(duì)結(jié)果集中的一個(gè)或多個(gè)記錄進(jìn)行修改前,觸發(fā)集中的一個(gè)或多個(gè)記錄進(jìn)行修改前,觸發(fā)WillChangeRecord事件;當(dāng)事件;當(dāng)
22、對(duì)結(jié)果集中的一個(gè)或多個(gè)記錄修改之后,觸發(fā)對(duì)結(jié)果集中的一個(gè)或多個(gè)記錄修改之后,觸發(fā)RecordChangeComplete事件。事件。z WillMove事件和事件和MoveComplete事件事件:在結(jié)果集的當(dāng)前行記錄指針移:在結(jié)果集的當(dāng)前行記錄指針移動(dòng)之前,觸發(fā)動(dòng)之前,觸發(fā)WillMove事件;在結(jié)果集的當(dāng)前行記錄指針移動(dòng)完成后,事件;在結(jié)果集的當(dāng)前行記錄指針移動(dòng)完成后,觸發(fā)觸發(fā)MoveComplete事件。事件。RecordSetRecordSet對(duì)象的主要屬性和方法對(duì)象的主要屬性和方法z Recordset屬性也稱為記錄集或結(jié)果集,用于存放從數(shù)屬性也稱為記錄集或結(jié)果集,用于存放從數(shù)據(jù)提供
23、者那里獲得的查詢結(jié)果,這個(gè)結(jié)果一般存放在客戶據(jù)提供者那里獲得的查詢結(jié)果,這個(gè)結(jié)果一般存放在客戶端內(nèi)存中,可以理解為是客戶端的游標(biāo)。端內(nèi)存中,可以理解為是客戶端的游標(biāo)。z 每個(gè)結(jié)果集有一個(gè)當(dāng)前行指針,指向正在操作的記錄。每個(gè)結(jié)果集有一個(gè)當(dāng)前行指針,指向正在操作的記錄。z 在在VB數(shù)據(jù)庫(kù)應(yīng)用程序中,一般不直接對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)數(shù)據(jù)庫(kù)應(yīng)用程序中,一般不直接對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,而是通過(guò)記錄集進(jìn)行的。因此,記錄集是進(jìn)行操作,而是通過(guò)記錄集進(jìn)行的。因此,記錄集是VB應(yīng)用程序和數(shù)據(jù)庫(kù)之間相互連接的橋梁。應(yīng)用程序和數(shù)據(jù)庫(kù)之間相互連接的橋梁。z 對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的操作主要是通過(guò)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的操作主要是通過(guò)R
24、ecordSet對(duì)象完成對(duì)象完成的。的。 RecordSetRecordSet對(duì)象的主要屬性對(duì)象的主要屬性zBOF:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了第一條記:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了第一條記錄的前邊,則此值為真,否則為假。錄的前邊,則此值為真,否則為假。zEOF:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了最后一條:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了最后一條記錄的后邊,則此值為真,否則為假。記錄的后邊,則此值為真,否則為假。zRecordCount:存放結(jié)果集中的記錄個(gè)數(shù)。:存放結(jié)果集中的記錄個(gè)數(shù)。zSort:將結(jié)果集中的記錄按某個(gè)字段排序。:將結(jié)果集中的記錄
25、按某個(gè)字段排序。zAbsolutePosition:記錄當(dāng)前行記錄在結(jié)果集中的順序號(hào),結(jié)果:記錄當(dāng)前行記錄在結(jié)果集中的順序號(hào),結(jié)果集記錄序號(hào)從集記錄序號(hào)從1開始。開始。zActiveCommand:結(jié)果集中創(chuàng)建的命令。:結(jié)果集中創(chuàng)建的命令。zActiveConnection:結(jié)果集中創(chuàng)建的連接。:結(jié)果集中創(chuàng)建的連接。zBookmark:結(jié)果集中當(dāng)前行記錄的標(biāo)識(shí)號(hào)。:結(jié)果集中當(dāng)前行記錄的標(biāo)識(shí)號(hào)。zFields:結(jié)果集中的字段集合。由于一行記錄可以包含多個(gè)字段,:結(jié)果集中的字段集合。由于一行記錄可以包含多個(gè)字段,因此因此Fields屬性是一個(gè)數(shù)組形式,數(shù)組中的每個(gè)元素代表一個(gè)字段。屬性是一個(gè)數(shù)組形
26、式,數(shù)組中的每個(gè)元素代表一個(gè)字段。FieldsFields對(duì)象屬性對(duì)象屬性 zFields屬性本身也是一個(gè)對(duì)象,它直接指向?qū)傩员旧硪彩且粋€(gè)對(duì)象,它直接指向ADO對(duì)對(duì)象模型中的象模型中的Fields對(duì)象。對(duì)象。Fields對(duì)象用下述屬性來(lái)描對(duì)象用下述屬性來(lái)描述結(jié)果集字段的信息:述結(jié)果集字段的信息:yFields.Name:字段名稱。:字段名稱。yFields.Value:字段的值。:字段的值。yFields.OrdinalPosition:字段在:字段在Fields集合中的順序。集合中的順序。yFields.Type:字段的數(shù)據(jù)類型。:字段的數(shù)據(jù)類型。yFields.Size:字段的最大字節(jié)數(shù)。
27、:字段的最大字節(jié)數(shù)。yFields.SourceTable:字段來(lái)自的表:字段來(lái)自的表yFields.SourceField:字段來(lái)自的表中的列:字段來(lái)自的表中的列RecordSetRecordSet對(duì)象的主要方法對(duì)象的主要方法 RecordSet對(duì)象的方法是實(shí)現(xiàn)結(jié)果集操作的關(guān)對(duì)象的方法是實(shí)現(xiàn)結(jié)果集操作的關(guān)鍵。鍵。z Move方法組方法組 z AddNew方法方法 z Update方法方法 z Delete方法方法 z CancelUpdate方法方法 z Find方法方法Move方法組zMove方法組就是實(shí)現(xiàn)在結(jié)果集中通過(guò)移動(dòng)記錄行方法組就是實(shí)現(xiàn)在結(jié)果集中通過(guò)移動(dòng)記錄行指針而瀏覽數(shù)據(jù)的方法。
28、指針而瀏覽數(shù)據(jù)的方法。zMove方法組中又包括四個(gè)相應(yīng)的移動(dòng)指針的方法。方法組中又包括四個(gè)相應(yīng)的移動(dòng)指針的方法。yMoveFirst方法:將當(dāng)前行記錄指針移到結(jié)果集中的第方法:將當(dāng)前行記錄指針移到結(jié)果集中的第一行。一行。yMovePrevious方法:將當(dāng)前行記錄指針向前移動(dòng)一行。方法:將當(dāng)前行記錄指針向前移動(dòng)一行。yMoveNext方法:將當(dāng)前行記錄指針向后移動(dòng)一行。方法:將當(dāng)前行記錄指針向后移動(dòng)一行。yMoveLast方法:將當(dāng)前行記錄指針移到結(jié)果集中的最方法:將當(dāng)前行記錄指針移到結(jié)果集中的最后一行。后一行。AddNew方法zAddNew方法用于在結(jié)果集中添加一個(gè)新記錄。方法用于在結(jié)果集中
29、添加一個(gè)新記錄。z注意,當(dāng)使用注意,當(dāng)使用AddNew方法時(shí),實(shí)際上只是在內(nèi)方法時(shí),實(shí)際上只是在內(nèi)存中開辟了一個(gè)新記錄的緩沖區(qū),緩沖區(qū)中的初存中開辟了一個(gè)新記錄的緩沖區(qū),緩沖區(qū)中的初始值均為控,新輸入的記錄被保存在這個(gè)緩沖區(qū)始值均為控,新輸入的記錄被保存在這個(gè)緩沖區(qū)中。要使緩沖區(qū)中新輸入的記錄永久地保存到數(shù)中。要使緩沖區(qū)中新輸入的記錄永久地保存到數(shù)據(jù)庫(kù)中,還必須使用據(jù)庫(kù)中,還必須使用Update方法,或者對(duì)當(dāng)前方法,或者對(duì)當(dāng)前行記錄指針作一個(gè)移動(dòng)操作。行記錄指針作一個(gè)移動(dòng)操作。UpdateUpdate方法方法 zUpdate方法將新記錄緩沖區(qū)中的記錄或者對(duì)當(dāng)前記錄的修改真正寫到數(shù)據(jù)庫(kù)中,使新添
30、加的記錄或修改后的結(jié)果被永久保存在數(shù)據(jù)庫(kù)中。DeleteDelete方法方法 zDelete方法刪除結(jié)果集中當(dāng)前行記錄指針?lè)椒▌h除結(jié)果集中當(dāng)前行記錄指針?biāo)傅挠涗?,并且這個(gè)刪除是直接對(duì)數(shù)據(jù)所指的記錄,并且這個(gè)刪除是直接對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)操作的,刪除后的數(shù)據(jù)不可恢復(fù)。庫(kù)數(shù)據(jù)操作的,刪除后的數(shù)據(jù)不可恢復(fù)。z因此,在使用此方法刪除數(shù)據(jù)前,最好提因此,在使用此方法刪除數(shù)據(jù)前,最好提示用戶是否真的要?jiǎng)h除數(shù)據(jù),以避免由于示用戶是否真的要?jiǎng)h除數(shù)據(jù),以避免由于誤操作而造成數(shù)據(jù)丟失。誤操作而造成數(shù)據(jù)丟失。CancelUpdateCancelUpdate方法方法 zCancelUpdate方法用于取消新添加的記方法用于
31、取消新添加的記錄或?qū)Ξ?dāng)前記錄所做的修改。錄或?qū)Ξ?dāng)前記錄所做的修改。z注意,此方法應(yīng)在調(diào)用注意,此方法應(yīng)在調(diào)用Update方法之前調(diào)方法之前調(diào)用,調(diào)用了用,調(diào)用了Update方法之后的修改是不能方法之后的修改是不能撤銷的。撤銷的。z另外需要注意的是,如果沒(méi)有添加新記錄,另外需要注意的是,如果沒(méi)有添加新記錄,也沒(méi)有對(duì)當(dāng)前記錄進(jìn)行任何修改,則調(diào)用也沒(méi)有對(duì)當(dāng)前記錄進(jìn)行任何修改,則調(diào)用CancelUpdate方法將產(chǎn)出錯(cuò)誤。方法將產(chǎn)出錯(cuò)誤。FindFind方法方法z Find方法用于在當(dāng)前結(jié)果集中查找滿足條件的記錄。如果方法用于在當(dāng)前結(jié)果集中查找滿足條件的記錄。如果結(jié)果集較大,則可以使用此方法在結(jié)果集快
32、速定位找到滿結(jié)果集較大,則可以使用此方法在結(jié)果集快速定位找到滿足要求的記錄。足要求的記錄。Find方法的格式為:方法的格式為: ADODC控件名控件名.Recordset. Find(“查找條件表達(dá)式查找條件表達(dá)式”)z “查找條件表達(dá)式查找條件表達(dá)式”中可以包含比較運(yùn)算符、邏輯運(yùn)算符中可以包含比較運(yùn)算符、邏輯運(yùn)算符和和Like查找符。例如:查找年齡在查找符。例如:查找年齡在20到到25之間的學(xué)生:之間的學(xué)生: Find(“Sage = 20 AND Sage = 25”)數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件z數(shù)據(jù)綁定控件概念數(shù)據(jù)綁定控件概念z數(shù)據(jù)綁定控件分類數(shù)據(jù)綁定控件分類z數(shù)據(jù)綁定控件的主要屬性數(shù)據(jù)綁定控件的主要屬性zDataGrid控件控件 數(shù)據(jù)綁定控件概念數(shù)據(jù)綁定控件概念z數(shù)據(jù)綁定實(shí)際上就是將結(jié)果集中的數(shù)據(jù)同應(yīng)用程數(shù)據(jù)綁定實(shí)際上就是將結(jié)果集中的數(shù)據(jù)同應(yīng)用程序界面中的控件聯(lián)系起來(lái),通過(guò)這些界面上的控序界面中的控件聯(lián)系起來(lái),通過(guò)這些界面上的控件將結(jié)果集中的數(shù)據(jù)顯示給用戶。能夠?qū)崿F(xiàn)將結(jié)件將結(jié)果集中的數(shù)據(jù)顯示給用戶。能夠?qū)崿F(xiàn)將結(jié)果集中的數(shù)據(jù)顯示出來(lái)的功能的控件就稱為果集中的數(shù)據(jù)顯示出來(lái)的功能的控件就稱為數(shù)據(jù)數(shù)據(jù)綁定控件綁定控
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 綿竹中學(xué)高2023級(jí)2024-2025學(xué)年度(下)期末模擬檢測(cè)(政治)
- 記賬實(shí)操-金屬材料銷售公司的賬務(wù)處理
- 河南省名校大聯(lián)考2024-2025學(xué)年高一下學(xué)期4月期中生物試卷(有答案)
- 2024-2025學(xué)年下學(xué)期高二生物人教版期末必刷??碱}之群落及其演替
- 2024-2025學(xué)年下學(xué)期高二生物滬科版期末必刷常考題之保護(hù)環(huán)境實(shí)現(xiàn)人類與自然的和諧相處
- 山東統(tǒng)考新聞?lì)}目及答案
- 軟件學(xué)院基礎(chǔ)題目及答案
- 日語(yǔ)經(jīng)濟(jì)題目大全及答案
- 10《靜電場(chǎng)中的能量》-2025高中物理水平合格考備考知識(shí)清單+習(xí)題鞏固
- 2 9 函數(shù)模型及應(yīng)用-2026版53高考數(shù)學(xué)總復(fù)習(xí)A版精煉
- 運(yùn)維服務(wù)質(zhì)量保障措施方案
- 公司職工提案登記表
- 機(jī)關(guān)食堂食材招標(biāo)的請(qǐng)示范本
- 聲波檢測(cè)報(bào)告
- 2023年國(guó)考真題(附答案)
- 個(gè)案工作知識(shí)點(diǎn)隋玉杰主編
- 乙狀結(jié)腸癌護(hù)理查房
- 2022年高考真題及答案解析《歷史、地理、政治》(廣東卷)
- 朗文4B 復(fù)習(xí)提要及朗文4B單詞及句子
- TSGD0012023年壓力管道安全技術(shù)監(jiān)察規(guī)程-工業(yè)管道(高清晰版)
- 運(yùn)動(dòng)控制系統(tǒng)阮毅陳維鈞課后答案清華大學(xué)出版社
評(píng)論
0/150
提交評(píng)論