版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
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)實例分析開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)實例分析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)用程序接口標準。的數(shù)據(jù)庫系統(tǒng)應(yīng)用程序接口標準。 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ù)據(jù)庫管理系統(tǒng)移植性,并且具備同時訪問多種數(shù)據(jù)庫管理系統(tǒng)的能力。的能力。4ODBCODBC的構(gòu)成的構(gòu)成v應(yīng)用程序應(yīng)用程序v驅(qū)動程序
3、管理器驅(qū)動程序管理器v驅(qū)動程序驅(qū)動程序v數(shù)據(jù)源數(shù)據(jù)源5VB應(yīng)用程序驅(qū)動程序管理器驅(qū)動程序管理器數(shù)據(jù)源1數(shù)據(jù)源2數(shù)據(jù)源3數(shù)據(jù)源46驅(qū)動程序管理器的工作驅(qū)動程序管理器的工作z驅(qū)動程序管理器是驅(qū)動程序管理器是WindowsWindows下的應(yīng)用程序,其主下的應(yīng)用程序,其主要作用是:要作用是:y安裝指定的驅(qū)動程序;安裝指定的驅(qū)動程序;y定義數(shù)據(jù)源,并把數(shù)據(jù)源映射到具體的定義數(shù)據(jù)源,并把數(shù)據(jù)源映射到具體的ODBCODBC驅(qū)驅(qū)動程序上動程序上 ;y為每個驅(qū)動程序提供為每個驅(qū)動程序提供ODBCODBC函數(shù)的入口點;函數(shù)的入口點;y檢查檢查ODBCODBC參數(shù)的合法性等。參數(shù)的合法性等。7ODBC驅(qū)動程序的具
4、體任務(wù)z ODBCODBC應(yīng)用程序不能直接存取數(shù)據(jù)庫,它將所要執(zhí)行的操作提應(yīng)用程序不能直接存取數(shù)據(jù)庫,它將所要執(zhí)行的操作提交給數(shù)據(jù)庫驅(qū)動程序,通過驅(qū)動程序?qū)崿F(xiàn)對數(shù)據(jù)庫的各種操交給數(shù)據(jù)庫驅(qū)動程序,通過驅(qū)動程序?qū)崿F(xiàn)對數(shù)據(jù)庫的各種操作,數(shù)據(jù)庫操作結(jié)果也通過驅(qū)動程序返回給應(yīng)用程序。作,數(shù)據(jù)庫操作結(jié)果也通過驅(qū)動程序返回給應(yīng)用程序。ODBCODBC驅(qū)動程序的具體任務(wù)有:驅(qū)動程序的具體任務(wù)有:y建立與數(shù)據(jù)源的連接;建立與數(shù)據(jù)源的連接;y向數(shù)據(jù)源提交向數(shù)據(jù)源提交SQLSQL請求;請求;y處理查詢結(jié)果;處理查詢結(jié)果;y將數(shù)據(jù)源錯誤轉(zhuǎn)換為標準錯誤代碼,返回給應(yīng)用程序;將數(shù)據(jù)源錯誤轉(zhuǎn)換為標準錯誤代碼,返回給應(yīng)用程序
5、;y提交事務(wù)的開始請求、完成請求和撤消請求等。提交事務(wù)的開始請求、完成請求和撤消請求等。8什么是數(shù)據(jù)源z 數(shù)據(jù)源數(shù)據(jù)源是是指任何一種可以通過指任何一種可以通過ODBCODBC連接的數(shù)據(jù)庫管理系統(tǒng),包括要訪問連接的數(shù)據(jù)庫管理系統(tǒng),包括要訪問的數(shù)據(jù)庫和數(shù)據(jù)庫的運行平臺(包括數(shù)據(jù)庫管理系統(tǒng)和運行數(shù)據(jù)庫管理的數(shù)據(jù)庫和數(shù)據(jù)庫的運行平臺(包括數(shù)據(jù)庫管理系統(tǒng)和運行數(shù)據(jù)庫管理系統(tǒng)的服務(wù)器)。系統(tǒng)的服務(wù)器)。它可以是它可以是PC平臺上的平臺上的FoxPro數(shù)據(jù)庫、數(shù)據(jù)庫、Windows 平平臺上的臺上的SQL Server數(shù)據(jù)庫或數(shù)據(jù)庫或OS/2平臺的平臺的Oracle數(shù)據(jù)庫等。數(shù)據(jù)庫等。z 數(shù)據(jù)源名數(shù)據(jù)源名掩
6、蓋了數(shù)據(jù)庫服務(wù)器之間的差別,通過定義多個數(shù)據(jù)源,讓每掩蓋了數(shù)據(jù)庫服務(wù)器之間的差別,通過定義多個數(shù)據(jù)源,讓每個數(shù)據(jù)源名對應(yīng)一個數(shù)據(jù)庫管理系統(tǒng)中的指定數(shù)據(jù)庫,這樣就可以實現(xiàn)個數(shù)據(jù)源名對應(yīng)一個數(shù)據(jù)庫管理系統(tǒng)中的指定數(shù)據(jù)庫,這樣就可以實現(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只能用于當前只能用于當前定義此數(shù)據(jù)源的機器上,定義此數(shù)據(jù)源的機器上,而且只有定義數(shù)據(jù)源的用而且只有定義數(shù)據(jù)源的用戶才可以使用;戶才可以使用;系統(tǒng)系統(tǒng)DSN可用于當前機器上的所有可用于當前機器上的所有用戶;用戶;文件文件DSN是將用戶是將用戶定義的數(shù)據(jù)源信息保存到定義的數(shù)據(jù)源信息保存到一個文件中,并可被所有一個文件中,并可被所有安裝了相同驅(qū)動程序的不安裝了相同驅(qū)動程序的不同機器上的用戶共享。同機器上的用戶共享。1415161718192021新建數(shù)據(jù)源新建數(shù)據(jù)源
8、22數(shù)據(jù)訪問接口(數(shù)據(jù)訪問接口(ADOADO)z訪問數(shù)據(jù)庫的幾種方式訪問數(shù)據(jù)庫的幾種方式z一致的數(shù)據(jù)訪問策略一致的數(shù)據(jù)訪問策略z ADO對象模型對象模型zADO數(shù)據(jù)控件與數(shù)據(jù)綁定控件數(shù)據(jù)控件與數(shù)據(jù)綁定控件 23訪問數(shù)據(jù)庫的幾種方式訪問數(shù)據(jù)庫的幾種方式z使用數(shù)據(jù)訪問接口使用數(shù)據(jù)訪問接口(對象模型)(對象模型)yActiveX數(shù)據(jù)對象(數(shù)據(jù)對象(ADO,ActiveX Data Objects )y遠程數(shù)據(jù)對象(遠程數(shù)據(jù)對象(RDO,Remote Data Objects )y數(shù)據(jù)訪問對象(數(shù)據(jù)訪問對象(DAO,Data Access Objects)z使用控件數(shù)據(jù)庫表記錄使用控件數(shù)據(jù)庫表記錄 此
9、方法局限性強,處理數(shù)據(jù)量小。此方法局限性強,處理數(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對象模型對象模型zADO是面向?qū)ο蟮氖敲嫦驅(qū)ο蟮腁PI,它只需開發(fā)者掌握幾個,它
10、只需開發(fā)者掌握幾個簡單對象的方法和屬性。簡單對象的方法和屬性。z ADO對象模型中包含了三核心對象:對象模型中包含了三核心對象:Connection、Command和和Recordset。z開發(fā)人員可以創(chuàng)建這三個對象并使用這些對象訪開發(fā)人員可以創(chuàng)建這三個對象并使用這些對象訪問數(shù)據(jù)庫。問數(shù)據(jù)庫。z在在ADO對象模型中還有幾個其他對象:對象模型中還有幾個其他對象:Field、Property、Error和和Parameter,它們是前面三個,它們是前面三個對象的子對象。對象的子對象。這些對象的描述如下:這些對象的描述如下: zConnection對象對象:包含了與數(shù)據(jù)源連接的信息。:包含了與數(shù)據(jù)源
11、連接的信息。zCommand對象對象:定義一個:定義一個SQLSQL語句、存儲過程等與命語句、存儲過程等與命令相關(guān)的信息。令相關(guān)的信息。zRecordset對象對象:包含了從數(shù)據(jù)源得到的記錄集。:包含了從數(shù)據(jù)源得到的記錄集。zField對象對象:包含了記錄集中的某個記錄的字段信息。:包含了記錄集中的某個記錄的字段信息。字段信息包括字段的數(shù)據(jù)類型、精度和數(shù)據(jù)范圍等。字段信息包括字段的數(shù)據(jù)類型、精度和數(shù)據(jù)范圍等。zProperty對象對象:ADO對象的屬性集。對象的屬性集。zParameter對象對象:保存與:保存與Command對象相關(guān)的參數(shù)。對象相關(guān)的參數(shù)。zError對象對象:包含了由數(shù)據(jù)源
12、產(chǎn)生的:包含了由數(shù)據(jù)源產(chǎn)生的Errors集合中的集合中的擴展的錯誤信息。由于一個單獨的語句會產(chǎn)生一個或擴展的錯誤信息。由于一個單獨的語句會產(chǎn)生一個或多個錯誤,因此多個錯誤,因此Errors集合可以同時包括一個和多個集合可以同時包括一個和多個Error對象。對象。ADO對象模型對象模型ConnectionErrorCommandParameterRecordsetFieldPropertyPropertyPropertyProperty28ADOADO數(shù)據(jù)控件與數(shù)據(jù)綁定控件數(shù)據(jù)控件與數(shù)據(jù)綁定控件zADO數(shù)據(jù)控件是使用數(shù)據(jù)控件是使用ADO數(shù)據(jù)對象來快速數(shù)據(jù)對象來快速建立應(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ù)綁定控件來實現(xiàn)。出來,就要靠數(shù)據(jù)綁定控件來實現(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對象的主要屬性、方法和事件對象的主要屬性、方法和事件zRecordSet對象的主要屬性和方法對象的主要屬性和方法y RecordS
14、etRecordSet對象的主要屬性對象的主要屬性y FieldsFields對象屬性對象屬性y RecordSetRecordSet對象的主要方法對象的主要方法30在在VBVB的工具箱中添加的工具箱中添加ADOADO數(shù)據(jù)控件數(shù)據(jù)控件3132ADO數(shù)據(jù)控件(數(shù)據(jù)控件(ADODC)ADODC在窗體中的樣式在窗體中的樣式33ADODCADODC對象的主要屬性、方法和事件對象的主要屬性、方法和事件zADODCADODC對象的主要屬性對象的主要屬性zADODCADODC對象的主要方法對象的主要方法zADODCADODC對象的主要事件對象的主要事件34ADODCADODC對象的主要屬性對象的主要屬性zC
15、onnectionStringConnectionString屬性屬性 (用于連接數(shù)據(jù)源)(用于連接數(shù)據(jù)源)zCommand屬性屬性yRecordSourceRecordSource屬性屬性yCommandTypeCommandType屬性屬性 zRecordsetRecordset屬性屬性 35ConnectionStringConnectionString屬性設(shè)置步驟屬性設(shè)置步驟z使用使用ODBC數(shù)據(jù)資源名稱數(shù)據(jù)資源名稱 以建立以建立ODBC數(shù)據(jù)源時使用數(shù)據(jù)源時使用z使用連接字符串使用連接字符串 未建立未建立ODBC數(shù)據(jù)源時使用數(shù)據(jù)源時使用36使用ODBC數(shù)據(jù)資源名稱3738使用連接字符串
16、3940414243RecordSourceRecordSource屬性屬性z 此屬性用于設(shè)置此屬性用于設(shè)置ADO結(jié)果集的內(nèi)結(jié)果集的內(nèi)容,這個內(nèi)容可容,這個內(nèi)容可以來自于一張表,以來自于一張表,也可以來自一個也可以來自一個查詢語句,也可查詢語句,也可以來自一個存儲以來自一個存儲過程的執(zhí)行結(jié)果。過程的執(zhí)行結(jié)果。z RecordSource屬屬性的值與性的值與CommandType屬性的值有關(guān),屬性的值有關(guān),兩者協(xié)同使用。兩者協(xié)同使用。44CommandTypeCommandType屬性屬性z 此屬性指明命令的類型,即要訪問的數(shù)據(jù)的來源。一般這此屬性指明命令的類型,即要訪問的數(shù)據(jù)的來源。一般這個屬
17、性和個屬性和RecordSource(記錄源)屬性配合使用。(記錄源)屬性配合使用。z CommandType屬性的取值有如下四個:屬性的取值有如下四個:yadCmdUnknown:默認值。表示:默認值。表示RecordSource中的命令類型中的命令類型未知。未知。yadCmdTable:RecordSource屬性的內(nèi)容是一個表名,表示其屬性的內(nèi)容是一個表名,表示其結(jié)果集是對此表執(zhí)行的無條件查詢的結(jié)果。結(jié)果集是對此表執(zhí)行的無條件查詢的結(jié)果。yadCmdText:RecordSource屬性的內(nèi)容是一個查詢語句文本屬性的內(nèi)容是一個查詢語句文本串,表示其結(jié)果集是執(zhí)行此查詢語句文本串產(chǎn)生的結(jié)果。
18、串,表示其結(jié)果集是執(zhí)行此查詢語句文本串產(chǎn)生的結(jié)果。yadCmdStoredProc:RecordSource屬性的內(nèi)容是一個存儲過屬性的內(nèi)容是一個存儲過程名,表示其結(jié)果集是執(zhí)行此存儲過程產(chǎn)生的結(jié)果。程名,表示其結(jié)果集是執(zhí)行此存儲過程產(chǎn)生的結(jié)果。z 設(shè)置設(shè)置CommandType屬性的方法參見設(shè)置屬性的方法參見設(shè)置RecordSource部分。部分。45CommandTypeCommandType屬性設(shè)置步驟屬性設(shè)置步驟4647RecordsetRecordset屬性屬性zRecordset屬性是屬性是ADO數(shù)據(jù)控件中實現(xiàn)數(shù)數(shù)據(jù)控件中實現(xiàn)數(shù)據(jù)記錄操作的最重要的屬性據(jù)記錄操作的最重要的屬性z這個屬
19、性本身又是一個對象,也有自己的這個屬性本身又是一個對象,也有自己的屬性和方法,它直接指向?qū)傩院头椒?,它直接指向ADO對象模型中對象模型中的的Recordset對象。對象。z稍后介紹該對象稍后介紹該對象 48ADODCADODC對象的主要方法對象的主要方法z ADODC控件最常用的是控件最常用的是Refresh方法。方法。z Refresh方法用于更新方法用于更新ADODC控件屬性,使修改后的控件屬性,使修改后的ADO數(shù)據(jù)控件屬性生效。數(shù)據(jù)控件屬性生效。z 當修改了當修改了ADODC控件的控件的ConnectionString屬性的值時,屬性的值時,使用使用Refresh方法會重新連接一次數(shù)據(jù)庫
20、;當修改了方法會重新連接一次數(shù)據(jù)庫;當修改了ADODC控件的控件的RecordSource屬性的值時,使用屬性的值時,使用Refresh方法會重新執(zhí)行方法會重新執(zhí)行RecordSource屬性的內(nèi)容,重屬性的內(nèi)容,重新產(chǎn)生結(jié)果集。新產(chǎn)生結(jié)果集。z 使用使用Refresh方法的格式為:方法的格式為: ADODC控件名控件名.Refresh 49ADODCADODC對象的主要事件對象的主要事件z EndOfRecordset事件事件:當在結(jié)果集中移動記錄指針時,當記錄指針超:當在結(jié)果集中移動記錄指針時,當記錄指針超出了結(jié)果集的最后一條記錄時,觸發(fā)此事件。出了結(jié)果集的最后一條記錄時,觸發(fā)此事件。z
21、Error事件事件:只有在沒有執(zhí)行任何:只有在沒有執(zhí)行任何VB代碼而發(fā)生了一個數(shù)據(jù)訪問錯誤時,代碼而發(fā)生了一個數(shù)據(jù)訪問錯誤時,才會觸發(fā)此事件。才會觸發(fā)此事件。z WillChangeField事件和事件和FieldChangeComplete事件事件:當對結(jié)果集中:當對結(jié)果集中的一個或多個字段值進行修改前,觸發(fā)的一個或多個字段值進行修改前,觸發(fā)WillChangeField事件;當對結(jié)事件;當對結(jié)果集中的一個或多個字段值修改之后,觸發(fā)果集中的一個或多個字段值修改之后,觸發(fā)FieldChangeComplete事事件。件。z WillChangeRecord事件和事件和RecordChangeC
22、omplete事件事件:當對結(jié)果:當對結(jié)果集中的一個或多個記錄進行修改前,觸發(fā)集中的一個或多個記錄進行修改前,觸發(fā)WillChangeRecord事件;當事件;當對結(jié)果集中的一個或多個記錄修改之后,觸發(fā)對結(jié)果集中的一個或多個記錄修改之后,觸發(fā)RecordChangeComplete事件。事件。z WillMove事件和事件和MoveComplete事件事件:在結(jié)果集的當前行記錄指針移:在結(jié)果集的當前行記錄指針移動之前,觸發(fā)動之前,觸發(fā)WillMove事件;在結(jié)果集的當前行記錄指針移動完成后,事件;在結(jié)果集的當前行記錄指針移動完成后,觸發(fā)觸發(fā)MoveComplete事件。事件。50RecordS
23、etRecordSet對象的主要屬性和方法對象的主要屬性和方法z Recordset屬性也稱為記錄集或結(jié)果集,用于存放從數(shù)屬性也稱為記錄集或結(jié)果集,用于存放從數(shù)據(jù)提供者那里獲得的查詢結(jié)果,這個結(jié)果一般存放在客戶據(jù)提供者那里獲得的查詢結(jié)果,這個結(jié)果一般存放在客戶端內(nèi)存中,可以理解為是客戶端的游標。端內(nèi)存中,可以理解為是客戶端的游標。z 每個結(jié)果集有一個當前行指針,指向正在操作的記錄。每個結(jié)果集有一個當前行指針,指向正在操作的記錄。z 在在VB數(shù)據(jù)庫應(yīng)用程序中,一般不直接對數(shù)據(jù)庫中的數(shù)據(jù)數(shù)據(jù)庫應(yīng)用程序中,一般不直接對數(shù)據(jù)庫中的數(shù)據(jù)進行操作,而是通過記錄集進行的。因此,記錄集是進行操作,而是通過記錄
24、集進行的。因此,記錄集是VB應(yīng)用程序和數(shù)據(jù)庫之間相互連接的橋梁。應(yīng)用程序和數(shù)據(jù)庫之間相互連接的橋梁。z 對數(shù)據(jù)庫中數(shù)據(jù)的操作主要是通過對數(shù)據(jù)庫中數(shù)據(jù)的操作主要是通過RecordSet對象完成對象完成的。的。 51RecordSetRecordSet對象的主要屬性對象的主要屬性zBOF:布爾值,如果結(jié)果集中記錄的當前行指針移到了第一條記:布爾值,如果結(jié)果集中記錄的當前行指針移到了第一條記錄的前邊,則此值為真,否則為假。錄的前邊,則此值為真,否則為假。zEOF:布爾值,如果結(jié)果集中記錄的當前行指針移到了最后一條:布爾值,如果結(jié)果集中記錄的當前行指針移到了最后一條記錄的后邊,則此值為真,否則為假。記
25、錄的后邊,則此值為真,否則為假。zRecordCount:存放結(jié)果集中的記錄個數(shù)。:存放結(jié)果集中的記錄個數(shù)。zSort:將結(jié)果集中的記錄按某個字段排序。:將結(jié)果集中的記錄按某個字段排序。zAbsolutePosition:記錄當前行記錄在結(jié)果集中的順序號,結(jié)果:記錄當前行記錄在結(jié)果集中的順序號,結(jié)果集記錄序號從集記錄序號從1開始。開始。zActiveCommand:結(jié)果集中創(chuàng)建的命令。:結(jié)果集中創(chuàng)建的命令。zActiveConnection:結(jié)果集中創(chuàng)建的連接。:結(jié)果集中創(chuàng)建的連接。zBookmark:結(jié)果集中當前行記錄的標識號。:結(jié)果集中當前行記錄的標識號。zFields:結(jié)果集中的字段集合
26、。由于一行記錄可以包含多個字段,:結(jié)果集中的字段集合。由于一行記錄可以包含多個字段,因此因此Fields屬性是一個數(shù)組形式,數(shù)組中的每個元素代表一個字段。屬性是一個數(shù)組形式,數(shù)組中的每個元素代表一個字段。52FieldsFields對象屬性對象屬性 zFields屬性本身也是一個對象,它直接指向?qū)傩员旧硪彩且粋€對象,它直接指向ADO對對象模型中的象模型中的Fields對象。對象。Fields對象用下述屬性來描對象用下述屬性來描述結(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對象的主要方法對象的主要方法 RecordSet對象的方法是實現(xiàn)結(jié)果集操作的關(guān)對象的方法是實現(xiàn)結(jié)果集操作的關(guān)鍵。鍵。z Move方法組方法組 z AddNew方法方法 z Update方法方法 z Delete方法方法 z
28、 CancelUpdate方法方法 z Find方法方法54Move方法組zMove方法組就是實現(xiàn)在結(jié)果集中通過移動記錄行方法組就是實現(xiàn)在結(jié)果集中通過移動記錄行指針而瀏覽數(shù)據(jù)的方法。指針而瀏覽數(shù)據(jù)的方法。zMove方法組中又包括四個相應(yīng)的移動指針的方法。方法組中又包括四個相應(yīng)的移動指針的方法。yMoveFirst方法:將當前行記錄指針移到結(jié)果集中的第方法:將當前行記錄指針移到結(jié)果集中的第一行。一行。yMovePrevious方法:將當前行記錄指針向前移動一行。方法:將當前行記錄指針向前移動一行。yMoveNext方法:將當前行記錄指針向后移動一行。方法:將當前行記錄指針向后移動一行。yMove
29、Last方法:將當前行記錄指針移到結(jié)果集中的最方法:將當前行記錄指針移到結(jié)果集中的最后一行。后一行。55AddNew方法zAddNew方法用于在結(jié)果集中添加一個新記錄。方法用于在結(jié)果集中添加一個新記錄。z注意,當使用注意,當使用AddNew方法時,實際上只是在內(nèi)方法時,實際上只是在內(nèi)存中開辟了一個新記錄的緩沖區(qū),緩沖區(qū)中的初存中開辟了一個新記錄的緩沖區(qū),緩沖區(qū)中的初始值均為控,新輸入的記錄被保存在這個緩沖區(qū)始值均為控,新輸入的記錄被保存在這個緩沖區(qū)中。要使緩沖區(qū)中新輸入的記錄永久地保存到數(shù)中。要使緩沖區(qū)中新輸入的記錄永久地保存到數(shù)據(jù)庫中,還必須使用據(jù)庫中,還必須使用Update方法,或者對當前
30、方法,或者對當前行記錄指針作一個移動操作。行記錄指針作一個移動操作。56UpdateUpdate方法方法 zUpdate方法將新記錄緩沖區(qū)中的記錄或者對當前記錄的修改真正寫到數(shù)據(jù)庫中,使新添加的記錄或修改后的結(jié)果被永久保存在數(shù)據(jù)庫中。57DeleteDelete方法方法 zDelete方法刪除結(jié)果集中當前行記錄指針方法刪除結(jié)果集中當前行記錄指針所指的記錄,并且這個刪除是直接對數(shù)據(jù)所指的記錄,并且這個刪除是直接對數(shù)據(jù)庫數(shù)據(jù)操作的,刪除后的數(shù)據(jù)不可恢復(fù)。庫數(shù)據(jù)操作的,刪除后的數(shù)據(jù)不可恢復(fù)。z因此,在使用此方法刪除數(shù)據(jù)前,最好提因此,在使用此方法刪除數(shù)據(jù)前,最好提示用戶是否真的要刪除數(shù)據(jù),以避免由于
31、示用戶是否真的要刪除數(shù)據(jù),以避免由于誤操作而造成數(shù)據(jù)丟失。誤操作而造成數(shù)據(jù)丟失。58CancelUpdateCancelUpdate方法方法 zCancelUpdate方法用于取消新添加的記方法用于取消新添加的記錄或?qū)Ξ斍坝涗浰龅男薷?。錄或?qū)Ξ斍坝涗浰龅男薷摹注意,此方法應(yīng)在調(diào)用注意,此方法應(yīng)在調(diào)用Update方法之前調(diào)方法之前調(diào)用,調(diào)用了用,調(diào)用了Update方法之后的修改是不能方法之后的修改是不能撤銷的。撤銷的。z另外需要注意的是,如果沒有添加新記錄,另外需要注意的是,如果沒有添加新記錄,也沒有對當前記錄進行任何修改,則調(diào)用也沒有對當前記錄進行任何修改,則調(diào)用CancelUpdate
32、方法將產(chǎn)出錯誤。方法將產(chǎn)出錯誤。59FindFind方法方法z Find方法用于在當前結(jié)果集中查找滿足條件的記錄。如果方法用于在當前結(jié)果集中查找滿足條件的記錄。如果結(jié)果集較大,則可以使用此方法在結(jié)果集快速定位找到滿結(jié)果集較大,則可以使用此方法在結(jié)果集快速定位找到滿足要求的記錄。足要求的記錄。Find方法的格式為:方法的格式為: ADODC控件名控件名.Recordset. Find(“查找條件表達式查找條件表達式”)z “查找條件表達式查找條件表達式”中可以包含比較運算符、邏輯運算符中可以包含比較運算符、邏輯運算符和和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ù)綁定實際上就是將結(jié)果集中的數(shù)據(jù)同應(yīng)用程數(shù)據(jù)綁定實際上就是將結(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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤炭合作框架協(xié)議書
- 雪上運動器材租賃擔(dān)保合同
- 垃圾處理兼職操作員協(xié)議
- 倉儲物流環(huán)境管理員聘用協(xié)議
- 學(xué)校自來水供應(yīng)系統(tǒng)安裝協(xié)議
- 上市公司保姆服務(wù)合同樣本
- 機場擴建箱涵施工協(xié)議
- 生態(tài)園生態(tài)能源基地施工合同
- 電子元件清罐施工合同
- 網(wǎng)絡(luò)存儲服務(wù)器租賃合同
- 汽車行業(yè)的綠色供應(yīng)鏈管理:可持續(xù)發(fā)展實踐與案例
- 隧道工程鉆爆法開挖技術(shù)
- 過駁操作計劃SHIP-TO-SHIP
- 拆遷復(fù)耕施工方案
- 錨索施工安全技術(shù)交底
- 小數(shù)乘除法四則混合運算含簡算專項練習(xí)(6套)
- 《數(shù)學(xué)建?!菲谀┛荚囋嚲硪慌c參考答案
- 五年級信息技術(shù)上冊期末測試卷答案
- 2019第五版新版PFMEA-注塑實例
- 新團員入團儀式PPT模板
- 八年級歷史上冊教案:第16課 毛澤東開辟井岡山道路
評論
0/150
提交評論