




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1C/SVBC/SVB數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)z數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)zVisual BasicVisual Basic快速入門快速入門z開放數(shù)據(jù)庫連接(開放數(shù)據(jù)庫連接(ODBCODBC)z數(shù)據(jù)訪問接口(數(shù)據(jù)訪問接口(ADOADO)zVBVB數(shù)據(jù)庫編程舉例數(shù)據(jù)庫編程舉例zVBVB開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)例分析開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)實(shí)例分析2開放數(shù)據(jù)庫連接(開放數(shù)據(jù)庫連接(ODBCODBC)zODBCODBC概念概念zODBCODBC的構(gòu)成的構(gòu)成z建立建立ODBCODBC數(shù)據(jù)源數(shù)據(jù)源 3ODBCODBC概念概念zODBC(開放數(shù)據(jù)庫接連,(開放數(shù)據(jù)庫接連,Open DataBa
2、se Connectivity)是)是Microsoft公司開發(fā)的一套開放公司開發(fā)的一套開放的數(shù)據(jù)庫系統(tǒng)應(yīng)用程序接口標(biāo)準(zhǔn)。的數(shù)據(jù)庫系統(tǒng)應(yīng)用程序接口標(biāo)準(zhǔn)。 zODBC使得客戶端應(yīng)用不再緊密地依賴于數(shù)據(jù)庫使得客戶端應(yīng)用不再緊密地依賴于數(shù)據(jù)庫管理系統(tǒng),用戶有廣泛的挑選余地來選擇自己喜管理系統(tǒng),用戶有廣泛的挑選余地來選擇自己喜歡和熟悉的開發(fā)工具。歡和熟悉的開發(fā)工具。zODBC使數(shù)據(jù)庫應(yīng)用程序具有很好的適應(yīng)性和可使數(shù)據(jù)庫應(yīng)用程序具有很好的適應(yīng)性和可移植性,并且具備同時(shí)訪問多種數(shù)據(jù)庫管理系統(tǒng)移植性,并且具備同時(shí)訪問多種數(shù)據(jù)庫管理系統(tǒng)的能力。的能力。4ODBCODBC的構(gòu)成的構(gòu)成v應(yīng)用程序應(yīng)用程序v驅(qū)動(dòng)程序
3、管理器驅(qū)動(dòng)程序管理器v驅(qū)動(dòng)程序驅(qū)動(dòng)程序v數(shù)據(jù)源數(shù)據(jù)源5VB應(yīng)用程序驅(qū)動(dòng)程序管理器驅(qū)動(dòng)程序管理器數(shù)據(jù)源1數(shù)據(jù)源2數(shù)據(jù)源3數(shù)據(jù)源46驅(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ù)的合法性等。7ODBC驅(qū)動(dòng)程序的具
4、體任務(wù)z ODBCODBC應(yīng)用程序不能直接存取數(shù)據(jù)庫,它將所要執(zhí)行的操作提應(yīng)用程序不能直接存取數(shù)據(jù)庫,它將所要執(zhí)行的操作提交給數(shù)據(jù)庫驅(qū)動(dòng)程序,通過驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)數(shù)據(jù)庫的各種操交給數(shù)據(jù)庫驅(qū)動(dòng)程序,通過驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)數(shù)據(jù)庫的各種操作,數(shù)據(jù)庫操作結(jié)果也通過驅(qū)動(dòng)程序返回給應(yīng)用程序。作,數(shù)據(jù)庫操作結(jié)果也通過驅(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)用程序
5、;y提交事務(wù)的開始請(qǐng)求、完成請(qǐng)求和撤消請(qǐng)求等。提交事務(wù)的開始請(qǐng)求、完成請(qǐng)求和撤消請(qǐng)求等。8什么是數(shù)據(jù)源z 數(shù)據(jù)源數(shù)據(jù)源是是指任何一種可以通過指任何一種可以通過ODBCODBC連接的數(shù)據(jù)庫管理系統(tǒng),包括要訪問連接的數(shù)據(jù)庫管理系統(tǒng),包括要訪問的數(shù)據(jù)庫和數(shù)據(jù)庫的運(yùn)行平臺(tái)(包括數(shù)據(jù)庫管理系統(tǒng)和運(yùn)行數(shù)據(jù)庫管理的數(shù)據(jù)庫和數(shù)據(jù)庫的運(yùn)行平臺(tái)(包括數(shù)據(jù)庫管理系統(tǒng)和運(yùn)行數(shù)據(jù)庫管理系統(tǒng)的服務(wù)器)。系統(tǒng)的服務(wù)器)。它可以是它可以是PC平臺(tái)上的平臺(tái)上的FoxPro數(shù)據(jù)庫、數(shù)據(jù)庫、Windows 平平臺(tái)上的臺(tái)上的SQL Server數(shù)據(jù)庫或數(shù)據(jù)庫或OS/2平臺(tái)的平臺(tái)的Oracle數(shù)據(jù)庫等。數(shù)據(jù)庫等。z 數(shù)據(jù)源名數(shù)據(jù)源名掩
6、蓋了數(shù)據(jù)庫服務(wù)器之間的差別,通過定義多個(gè)數(shù)據(jù)源,讓每掩蓋了數(shù)據(jù)庫服務(wù)器之間的差別,通過定義多個(gè)數(shù)據(jù)源,讓每個(gè)數(shù)據(jù)源名對(duì)應(yīng)一個(gè)數(shù)據(jù)庫管理系統(tǒng)中的指定數(shù)據(jù)庫,這樣就可以實(shí)現(xiàn)個(gè)數(shù)據(jù)源名對(duì)應(yīng)一個(gè)數(shù)據(jù)庫管理系統(tǒng)中的指定數(shù)據(jù)庫,這樣就可以實(shí)現(xiàn)在應(yīng)用程序中通過數(shù)據(jù)源名而不是具體的數(shù)據(jù)庫名訪問指數(shù)據(jù)庫的目的。在應(yīng)用程序中通過數(shù)據(jù)源名而不是具體的數(shù)據(jù)庫名訪問指數(shù)據(jù)庫的目的。9建立建立ODBCODBC數(shù)據(jù)源數(shù)據(jù)源z可以通過Windows的控制面板可以建立ODBC數(shù)據(jù)源。 z建立步驟為: 101112zODBC數(shù)據(jù)源共有三種數(shù)據(jù)源共有三種類型,第一種是用戶數(shù)據(jù)類型,第一種是用戶數(shù)據(jù)源(用戶源(用戶DSN),第二種)
7、,第二種是系統(tǒng)數(shù)據(jù)源(系統(tǒng)是系統(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ī)器上的用戶共享。1415161718192021新建數(shù)據(jù)源新建數(shù)據(jù)源
8、22數(shù)據(jù)訪問接口(數(shù)據(jù)訪問接口(ADOADO)z訪問數(shù)據(jù)庫的幾種方式訪問數(shù)據(jù)庫的幾種方式z一致的數(shù)據(jù)訪問策略一致的數(shù)據(jù)訪問策略z ADO對(duì)象模型對(duì)象模型zADO數(shù)據(jù)控件與數(shù)據(jù)綁定控件數(shù)據(jù)控件與數(shù)據(jù)綁定控件 23訪問數(shù)據(jù)庫的幾種方式訪問數(shù)據(jù)庫的幾種方式z使用數(shù)據(jù)訪問接口使用數(shù)據(jù)訪問接口(對(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ù)訪問對(duì)象(數(shù)據(jù)訪問對(duì)象(DAO,Data Access Objects)z使用控件數(shù)據(jù)庫表記錄使用控件數(shù)據(jù)庫表記錄 此
9、方法局限性強(qiáng),處理數(shù)據(jù)量小。此方法局限性強(qiáng),處理數(shù)據(jù)量小。z直接調(diào)用直接調(diào)用ODBC API(應(yīng)用程序編程接口)(應(yīng)用程序編程接口) (Application Programming Interface)編程復(fù)雜。)編程復(fù)雜。一致的數(shù)據(jù)訪問策略的體系結(jié)構(gòu)一致的數(shù)據(jù)訪問策略的體系結(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ù)庫庫25ADOADO對(duì)象模型對(duì)象模型zADO是面向?qū)ο蟮氖敲嫦驅(qū)ο蟮腁PI,它只需開發(fā)者掌握幾個(gè),它
10、只需開發(fā)者掌握幾個(gè)簡(jiǎn)單對(duì)象的方法和屬性。簡(jiǎn)單對(duì)象的方法和屬性。z ADO對(duì)象模型中包含了三核心對(duì)象:對(duì)象模型中包含了三核心對(duì)象:Connection、Command和和Recordset。z開發(fā)人員可以創(chuàng)建這三個(gè)對(duì)象并使用這些對(duì)象訪開發(fā)人員可以創(chuàng)建這三個(gè)對(duì)象并使用這些對(duì)象訪問數(shù)據(jù)庫。問數(shù)據(jù)庫。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ù)源
11、連接的信息。zCommand對(duì)象對(duì)象:定義一個(gè):定義一個(gè)SQLSQL語句、存儲(chǔ)過程等與命語句、存儲(chǔ)過程等與命令相關(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ù)源
12、產(chǎn)生的:包含了由數(shù)據(jù)源產(chǎn)生的Errors集合中的集合中的擴(kuò)展的錯(cuò)誤信息。由于一個(gè)單獨(dú)的語句會(huì)產(chǎn)生一個(gè)或擴(kuò)展的錯(cuò)誤信息。由于一個(gè)單獨(dú)的語句會(huì)產(chǎn)生一個(gè)或多個(gè)錯(cuò)誤,因此多個(gè)錯(cuò)誤,因此Errors集合可以同時(shí)包括一個(gè)和多個(gè)集合可以同時(shí)包括一個(gè)和多個(gè)Error對(duì)象。對(duì)象。ADO對(duì)象模型對(duì)象模型ConnectionErrorCommandParameterRecordsetFieldPropertyPropertyPropertyProperty28ADOADO數(shù)據(jù)控件與數(shù)據(jù)綁定控件數(shù)據(jù)控件與數(shù)據(jù)綁定控件zADO數(shù)據(jù)控件是使用數(shù)據(jù)控件是使用ADO數(shù)據(jù)對(duì)象來快速數(shù)據(jù)對(duì)象來快速建立應(yīng)用程序和數(shù)據(jù)源之間的連接,
13、并快建立應(yīng)用程序和數(shù)據(jù)源之間的連接,并快速創(chuàng)建數(shù)據(jù)訪問結(jié)果記錄集的工具。速創(chuàng)建數(shù)據(jù)訪問結(jié)果記錄集的工具。z由于由于ADO數(shù)據(jù)控件不具有顯示數(shù)據(jù)的功能,數(shù)據(jù)控件不具有顯示數(shù)據(jù)的功能,因此要將數(shù)據(jù)操作結(jié)果在用戶界面上顯示因此要將數(shù)據(jù)操作結(jié)果在用戶界面上顯示出來,就要靠數(shù)據(jù)綁定控件來實(shí)現(xiàn)。出來,就要靠數(shù)據(jù)綁定控件來實(shí)現(xiàn)。zADO數(shù)據(jù)控件數(shù)據(jù)控件z數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件29ADOADO數(shù)據(jù)控件數(shù)據(jù)控件z在在VB的工具箱中添加的工具箱中添加ADO數(shù)據(jù)控件數(shù)據(jù)控件zADODC對(duì)象的主要屬性、方法和事件對(duì)象的主要屬性、方法和事件zRecordSet對(duì)象的主要屬性和方法對(duì)象的主要屬性和方法y RecordS
14、etRecordSet對(duì)象的主要屬性對(duì)象的主要屬性y FieldsFields對(duì)象屬性對(duì)象屬性y RecordSetRecordSet對(duì)象的主要方法對(duì)象的主要方法30在在VBVB的工具箱中添加的工具箱中添加ADOADO數(shù)據(jù)控件數(shù)據(jù)控件3132ADO數(shù)據(jù)控件(數(shù)據(jù)控件(ADODC)ADODC在窗體中的樣式在窗體中的樣式33ADODCADODC對(duì)象的主要屬性、方法和事件對(duì)象的主要屬性、方法和事件zADODCADODC對(duì)象的主要屬性對(duì)象的主要屬性zADODCADODC對(duì)象的主要方法對(duì)象的主要方法zADODCADODC對(duì)象的主要事件對(duì)象的主要事件34ADODCADODC對(duì)象的主要屬性對(duì)象的主要屬性zC
15、onnectionStringConnectionString屬性屬性 (用于連接數(shù)據(jù)源)(用于連接數(shù)據(jù)源)zCommand屬性屬性yRecordSourceRecordSource屬性屬性yCommandTypeCommandType屬性屬性 zRecordsetRecordset屬性屬性 35ConnectionStringConnectionString屬性設(shè)置步驟屬性設(shè)置步驟z使用使用ODBC數(shù)據(jù)資源名稱數(shù)據(jù)資源名稱 以建立以建立ODBC數(shù)據(jù)源時(shí)使用數(shù)據(jù)源時(shí)使用z使用連接字符串使用連接字符串 未建立未建立ODBC數(shù)據(jù)源時(shí)使用數(shù)據(jù)源時(shí)使用36使用ODBC數(shù)據(jù)資源名稱3738使用連接字符串
16、3940414243RecordSourceRecordSource屬性屬性z 此屬性用于設(shè)置此屬性用于設(shè)置ADO結(jié)果集的內(nèi)結(jié)果集的內(nèi)容,這個(gè)內(nèi)容可容,這個(gè)內(nèi)容可以來自于一張表,以來自于一張表,也可以來自一個(gè)也可以來自一個(gè)查詢語句,也可查詢語句,也可以來自一個(gè)存儲(chǔ)以來自一個(gè)存儲(chǔ)過程的執(zhí)行結(jié)果。過程的執(zhí)行結(jié)果。z RecordSource屬屬性的值與性的值與CommandType屬性的值有關(guān),屬性的值有關(guān),兩者協(xié)同使用。兩者協(xié)同使用。44CommandTypeCommandType屬性屬性z 此屬性指明命令的類型,即要訪問的數(shù)據(jù)的來源。一般這此屬性指明命令的類型,即要訪問的數(shù)據(jù)的來源。一般這個(gè)屬
17、性和個(gè)屬性和RecordSource(記錄源)屬性配合使用。(記錄源)屬性配合使用。z CommandType屬性的取值有如下四個(gè):屬性的取值有如下四個(gè):yadCmdUnknown:默認(rèn)值。表示:默認(rèn)值。表示RecordSource中的命令類型中的命令類型未知。未知。yadCmdTable:RecordSource屬性的內(nèi)容是一個(gè)表名,表示其屬性的內(nèi)容是一個(gè)表名,表示其結(jié)果集是對(duì)此表執(zhí)行的無條件查詢的結(jié)果。結(jié)果集是對(duì)此表執(zhí)行的無條件查詢的結(jié)果。yadCmdText:RecordSource屬性的內(nèi)容是一個(gè)查詢語句文本屬性的內(nèi)容是一個(gè)查詢語句文本串,表示其結(jié)果集是執(zhí)行此查詢語句文本串產(chǎn)生的結(jié)果。
18、串,表示其結(jié)果集是執(zhí)行此查詢語句文本串產(chǎn)生的結(jié)果。yadCmdStoredProc:RecordSource屬性的內(nèi)容是一個(gè)存儲(chǔ)過屬性的內(nèi)容是一個(gè)存儲(chǔ)過程名,表示其結(jié)果集是執(zhí)行此存儲(chǔ)過程產(chǎn)生的結(jié)果。程名,表示其結(jié)果集是執(zhí)行此存儲(chǔ)過程產(chǎn)生的結(jié)果。z 設(shè)置設(shè)置CommandType屬性的方法參見設(shè)置屬性的方法參見設(shè)置RecordSource部分。部分。45CommandTypeCommandType屬性設(shè)置步驟屬性設(shè)置步驟4647RecordsetRecordset屬性屬性zRecordset屬性是屬性是ADO數(shù)據(jù)控件中實(shí)現(xiàn)數(shù)數(shù)據(jù)控件中實(shí)現(xiàn)數(shù)據(jù)記錄操作的最重要的屬性據(jù)記錄操作的最重要的屬性z這個(gè)屬
19、性本身又是一個(gè)對(duì)象,也有自己的這個(gè)屬性本身又是一個(gè)對(duì)象,也有自己的屬性和方法,它直接指向?qū)傩院头椒ǎ苯又赶駻DO對(duì)象模型中對(duì)象模型中的的Recordset對(duì)象。對(duì)象。z稍后介紹該對(duì)象稍后介紹該對(duì)象 48ADODCADODC對(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ù)庫
20、;當(dāng)修改了方法會(huì)重新連接一次數(shù)據(jù)庫;當(dāng)修改了ADODC控件的控件的RecordSource屬性的值時(shí),使用屬性的值時(shí),使用Refresh方法會(huì)重新執(zhí)行方法會(huì)重新執(zhí)行RecordSource屬性的內(nèi)容,重屬性的內(nèi)容,重新產(chǎn)生結(jié)果集。新產(chǎn)生結(jié)果集。z 使用使用Refresh方法的格式為:方法的格式為: ADODC控件名控件名.Refresh 49ADODCADODC對(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
21、Error事件事件:只有在沒有執(zhí)行任何:只有在沒有執(zhí)行任何VB代碼而發(fā)生了一個(gè)數(shù)據(jù)訪問錯(cuò)誤時(shí),代碼而發(fā)生了一個(gè)數(shù)據(jù)訪問錯(cuò)誤時(shí),才會(huì)觸發(fā)此事件。才會(huì)觸發(fā)此事件。z 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事件和事件和RecordChangeC
22、omplete事件事件:當(dāng)對(duì)結(jié)果:當(dāng)對(duì)結(jié)果集中的一個(gè)或多個(gè)記錄進(jìn)行修改前,觸發(fā)集中的一個(gè)或多個(gè)記錄進(jìn)行修改前,觸發(fā)WillChangeRecord事件;當(dāng)事件;當(dāng)對(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事件。事件。50RecordS
23、etRecordSet對(duì)象的主要屬性和方法對(duì)象的主要屬性和方法z Recordset屬性也稱為記錄集或結(jié)果集,用于存放從數(shù)屬性也稱為記錄集或結(jié)果集,用于存放從數(shù)據(jù)提供者那里獲得的查詢結(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ù)庫應(yīng)用程序中,一般不直接對(duì)數(shù)據(jù)庫中的數(shù)據(jù)數(shù)據(jù)庫應(yīng)用程序中,一般不直接對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,而是通過記錄集進(jìn)行的。因此,記錄集是進(jìn)行操作,而是通過記錄
24、集進(jìn)行的。因此,記錄集是VB應(yīng)用程序和數(shù)據(jù)庫之間相互連接的橋梁。應(yīng)用程序和數(shù)據(jù)庫之間相互連接的橋梁。z 對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作主要是通過對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作主要是通過RecordSet對(duì)象完成對(duì)象完成的。的。 51RecordSetRecordSet對(duì)象的主要屬性對(duì)象的主要屬性zBOF:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了第一條記:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了第一條記錄的前邊,則此值為真,否則為假。錄的前邊,則此值為真,否則為假。zEOF:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了最后一條:布爾值,如果結(jié)果集中記錄的當(dāng)前行指針移到了最后一條記錄的后邊,則此值為真,否則為假。記
25、錄的后邊,則此值為真,否則為假。zRecordCount:存放結(jié)果集中的記錄個(gè)數(shù)。:存放結(jié)果集中的記錄個(gè)數(shù)。zSort:將結(jié)果集中的記錄按某個(gè)字段排序。:將結(jié)果集中的記錄按某個(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é)果集中的字段集合
26、。由于一行記錄可以包含多個(gè)字段,:結(jié)果集中的字段集合。由于一行記錄可以包含多個(gè)字段,因此因此Fields屬性是一個(gè)數(shù)組形式,數(shù)組中的每個(gè)元素代表一個(gè)字段。屬性是一個(gè)數(shù)組形式,數(shù)組中的每個(gè)元素代表一個(gè)字段。52FieldsFields對(duì)象屬性對(duì)象屬性 zFields屬性本身也是一個(gè)對(duì)象,它直接指向?qū)傩员旧硪彩且粋€(gè)對(duì)象,它直接指向ADO對(duì)對(duì)象模型中的象模型中的Fields對(duì)象。對(duì)象。Fields對(duì)象用下述屬性來描對(duì)象用下述屬性來描述結(jié)果集字段的信息:述結(jié)果集字段的信息:yFields.Name:字段名稱。:字段名稱。yFields.Value:字段的值。:字段的值。yFields.OrdinalP
27、osition:字段在:字段在Fields集合中的順序。集合中的順序。yFields.Type:字段的數(shù)據(jù)類型。:字段的數(shù)據(jù)類型。yFields.Size:字段的最大字節(jié)數(shù)。:字段的最大字節(jié)數(shù)。yFields.SourceTable:字段來自的表:字段來自的表yFields.SourceField:字段來自的表中的列:字段來自的表中的列53RecordSetRecordSet對(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
28、 CancelUpdate方法方法 z Find方法方法54Move方法組zMove方法組就是實(shí)現(xiàn)在結(jié)果集中通過移動(dòng)記錄行方法組就是實(shí)現(xiàn)在結(jié)果集中通過移動(dòng)記錄行指針而瀏覽數(shù)據(jù)的方法。指針而瀏覽數(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)一行。yMove
29、Last方法:將當(dāng)前行記錄指針移到結(jié)果集中的最方法:將當(dāng)前行記錄指針移到結(jié)果集中的最后一行。后一行。55AddNew方法zAddNew方法用于在結(jié)果集中添加一個(gè)新記錄。方法用于在結(jié)果集中添加一個(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ù)庫中,還必須使用據(jù)庫中,還必須使用Update方法,或者對(duì)當(dāng)前
30、方法,或者對(duì)當(dāng)前行記錄指針作一個(gè)移動(dòng)操作。行記錄指針作一個(gè)移動(dòng)操作。56UpdateUpdate方法方法 zUpdate方法將新記錄緩沖區(qū)中的記錄或者對(duì)當(dāng)前記錄的修改真正寫到數(shù)據(jù)庫中,使新添加的記錄或修改后的結(jié)果被永久保存在數(shù)據(jù)庫中。57DeleteDelete方法方法 zDelete方法刪除結(jié)果集中當(dāng)前行記錄指針方法刪除結(jié)果集中當(dāng)前行記錄指針?biāo)傅挠涗?,并且這個(gè)刪除是直接對(duì)數(shù)據(jù)所指的記錄,并且這個(gè)刪除是直接對(duì)數(shù)據(jù)庫數(shù)據(jù)操作的,刪除后的數(shù)據(jù)不可恢復(fù)。庫數(shù)據(jù)操作的,刪除后的數(shù)據(jù)不可恢復(fù)。z因此,在使用此方法刪除數(shù)據(jù)前,最好提因此,在使用此方法刪除數(shù)據(jù)前,最好提示用戶是否真的要?jiǎng)h除數(shù)據(jù),以避免由于
31、示用戶是否真的要?jiǎng)h除數(shù)據(jù),以避免由于誤操作而造成數(shù)據(jù)丟失。誤操作而造成數(shù)據(jù)丟失。58CancelUpdateCancelUpdate方法方法 zCancelUpdate方法用于取消新添加的記方法用于取消新添加的記錄或?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另外需要注意的是,如果沒有添加新記錄,另外需要注意的是,如果沒有添加新記錄,也沒有對(duì)當(dāng)前記錄進(jìn)行任何修改,則調(diào)用也沒有對(duì)當(dāng)前記錄進(jìn)行任何修改,則調(diào)用CancelUpdate
32、方法將產(chǎn)出錯(cuò)誤。方法將產(chǎn)出錯(cuò)誤。59FindFind方法方法z Find方法用于在當(dāng)前結(jié)果集中查找滿足條件的記錄。如果方法用于在當(dāng)前結(jié)果集中查找滿足條件的記錄。如果結(jié)果集較大,則可以使用此方法在結(jié)果集快速定位找到滿結(jié)果集較大,則可以使用此方法在結(jié)果集快速定位找到滿足要求的記錄。足要求的記錄。Find方法的格式為:方法的格式為: ADODC控件名控件名.Recordset. Find(“查找條件表達(dá)式查找條件表達(dá)式”)z “查找條件表達(dá)式查找條件表達(dá)式”中可以包含比較運(yùn)算符、邏輯運(yùn)算符中可以包含比較運(yùn)算符、邏輯運(yùn)算符和和Like查找符。例如:查找年齡在查找符。例如:查找年齡在20到到25之間的學(xué)
33、生:之間的學(xué)生: Find(“Sage = 20 AND Sage = 25”)60數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件z數(shù)據(jù)綁定控件概念數(shù)據(jù)綁定控件概念z數(shù)據(jù)綁定控件分類數(shù)據(jù)綁定控件分類z數(shù)據(jù)綁定控件的主要屬性數(shù)據(jù)綁定控件的主要屬性zDataGrid控件控件 61數(shù)據(jù)綁定控件概念數(shù)據(jù)綁定控件概念z數(shù)據(jù)綁定實(shí)際上就是將結(jié)果集中的數(shù)據(jù)同應(yīng)用程數(shù)據(jù)綁定實(shí)際上就是將結(jié)果集中的數(shù)據(jù)同應(yīng)用程序界面中的控件聯(lián)系起來,通過這些界面上的控序界面中的控件聯(lián)系起來,通過這些界面上的控件將結(jié)果集中的數(shù)據(jù)顯示給用戶。能夠?qū)崿F(xiàn)將結(jié)件將結(jié)果集中的數(shù)據(jù)顯示給用戶。能夠?qū)崿F(xiàn)將結(jié)果集中的數(shù)據(jù)顯示出來的功能的控件就稱為果集中的數(shù)據(jù)顯示出來的功能的控件就稱為數(shù)據(jù)數(shù)據(jù)綁定控件綁定控件。z數(shù)據(jù)綁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川文化產(chǎn)業(yè)職業(yè)學(xué)院《營銷實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津工程職業(yè)技術(shù)學(xué)院《物聯(lián)網(wǎng)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東中醫(yī)藥高等??茖W(xué)?!督處熣n堂教學(xué)藝術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 無錫市崇安區(qū)達(dá)標(biāo)名校2025屆初三下學(xué)期期初檢測(cè)試題含解析
- 四川省德陽市什邡中學(xué)2025年高三模擬試題(三)化學(xué)試題試卷含解析
- 沈陽科技學(xué)院《西方畫論》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西理工大學(xué)《歐美設(shè)計(jì)規(guī)范釋義一雙語》2023-2024學(xué)年第二學(xué)期期末試卷
- 模電 9-功率放大電路學(xué)習(xí)資料
- 西安醫(yī)學(xué)高等??茖W(xué)校《醫(yī)學(xué)科學(xué)研究導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 單位使用個(gè)人車輛協(xié)議書二零二五年
- 22G101基礎(chǔ)平法識(shí)圖與鋼筋計(jì)算
- 2024年專升本考試-專升本考試(機(jī)械設(shè)計(jì)基礎(chǔ))筆試歷年真題薈萃含答案
- 對(duì)中標(biāo)候選人的異議書
- 2024年北京市自來水集團(tuán)長辛店分公司招聘筆試參考題庫含答案解析
- -醫(yī)院感染預(yù)防與控制標(biāo)準(zhǔn)操作規(guī)程SOP第2版
- 老人疫苗接種健康知識(shí)講座
- 慢性阻塞性肺疾病的常見病例分析
- 2024年同等學(xué)力申碩-同等學(xué)力(政治學(xué))歷年高頻考點(diǎn)試卷專家薈萃含答案
- 文學(xué)作品中的意象與象征解讀
- 2021年內(nèi)痔內(nèi)鏡下微創(chuàng)診療指南解讀講座課件
- 感染科業(yè)務(wù)培訓(xùn)計(jì)劃
評(píng)論
0/150
提交評(píng)論