《數(shù)據(jù)庫編程接口》PPT課件.ppt_第1頁
《數(shù)據(jù)庫編程接口》PPT課件.ppt_第2頁
《數(shù)據(jù)庫編程接口》PPT課件.ppt_第3頁
《數(shù)據(jù)庫編程接口》PPT課件.ppt_第4頁
《數(shù)據(jù)庫編程接口》PPT課件.ppt_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第十四章 數(shù)據(jù)庫編程接口,14.1開放式數(shù)據(jù)庫連接(ODBC) ODBC(Open Database Connectivity)是由Microsoft 開發(fā)和定義的一種訪問數(shù)據(jù)庫的應(yīng)用程序接口,是一組用于訪問不同構(gòu)造的數(shù)據(jù)庫的驅(qū)動(dòng)程序,在數(shù)據(jù)庫應(yīng)用程序中,不需要考慮各類數(shù)據(jù)庫的系統(tǒng)的構(gòu)造細(xì)節(jié),只要使用ODBC提供的驅(qū)動(dòng)程序,通過將SQL語句發(fā)送到目標(biāo)數(shù)據(jù)庫中,就可以存取各類數(shù)據(jù)庫中的數(shù)據(jù)。,14.1開放式數(shù)據(jù)庫連接(ODBC),1. ODBC組件 ODBC使用的分層體系結(jié)構(gòu)包括:ODBC應(yīng)用程序、驅(qū)動(dòng)程序管理器、ODBC驅(qū)動(dòng)程序和數(shù)據(jù)源。其結(jié)構(gòu)課本所示。 2.配置ODBC數(shù)據(jù)源 在使用ODBC之前,必須安裝一個(gè)ODBC驅(qū)動(dòng)程序,然后再配置一個(gè)數(shù)據(jù)源。數(shù)據(jù)庫驅(qū)動(dòng)程序使用Data Source Name (DSN)來定位特定的ODBC兼容數(shù)據(jù)庫,將信息從應(yīng)用程序傳遞給數(shù)據(jù)庫。典型情況下,DSN通常包含數(shù)據(jù)庫配置、用戶安全性和定位信息,并且可以獲取Windows NT注冊表項(xiàng)中或文本文件的表格。 (1) ODBC數(shù)據(jù)源名 數(shù)據(jù)源名是為所要訪問數(shù)據(jù)庫指定的名字。通常情況下,如果要連接到一個(gè)數(shù)據(jù)庫上,則必須發(fā)送一組參數(shù)來獲得該連接。在每次要連接一個(gè)數(shù)據(jù)庫時(shí),反復(fù)地發(fā)送這些信 息很麻煩,因?yàn)檫@些信息是永遠(yuǎn)不改變的。,14.1開放式數(shù)據(jù)庫連接(ODBC),( 2) SQL Server數(shù)據(jù)庫系統(tǒng)DSN的配置方法 下面通過一個(gè)實(shí)例,具體說明DSN的配置方法。 【例14-1】建立一個(gè)名稱為studentDBS的數(shù)據(jù)源,通過該數(shù)據(jù)源名稱引用student_ms數(shù)據(jù)庫。 (1)在計(jì)算機(jī)中,通過“開始”“控制面板”“管理工具”“數(shù)據(jù)源( ODBC)”命令,打開ODBC數(shù)據(jù)源管理器。在該數(shù)據(jù)源管理器中選擇“系統(tǒng)DSN”標(biāo)簽頁,如圖所示。,14.1開放式數(shù)據(jù)庫連接(ODBC),(2)單擊“添加”按鈕,打開“創(chuàng)建新數(shù)據(jù)源”對話框,在“選擇您想為其安裝數(shù)據(jù)源的驅(qū)動(dòng)程序”的列表框中,顯示系統(tǒng)中全部ODBC驅(qū)動(dòng)程序,選擇“SQL Server“,如圖所示。,14.1開放式數(shù)據(jù)庫連接(ODBC),(3)單擊“完成”按鈕,系統(tǒng)自動(dòng)彈出如下圖所示的“創(chuàng)建到SQL Server的新數(shù)據(jù)源”設(shè)置界面,在數(shù)據(jù)源名稱文本欄中輸入內(nèi)容:,14.1開放式數(shù)據(jù)庫連接(ODBC),(4)單擊“下一步”按鈕, SQL Server將確定應(yīng)該如何驗(yàn)證登錄ID的真?zhèn)巍_x擇“使用網(wǎng)絡(luò)登錄ID的Windows NT驗(yàn)證”這種驗(yàn)證方式。如圖所示,可以根據(jù)需要選擇不同的選項(xiàng)。,14.1開放式數(shù)據(jù)庫連接(ODBC),(5)單擊“下一步”按鈕,SQL Server將確定默認(rèn)的數(shù)據(jù)庫等,如圖所示。在該對話框中,可根據(jù)需要更改默認(rèn)數(shù)據(jù)庫的名稱,這里輸入“student _ms”,也可以添加“附加數(shù)據(jù)庫文件名”等。,14.1開放式數(shù)據(jù)庫連接(ODBC),(6)單擊“下一步”按鈕,出現(xiàn)對新數(shù)據(jù)源進(jìn)行簡單設(shè)置的對話框,如圖所示。,14.1開放式數(shù)據(jù)庫連接(ODBC),(7)單擊“完成”按鈕,系統(tǒng)將會(huì)顯示新創(chuàng)建的ODBC數(shù)據(jù)源的配置情況的描述,如圖所示。,14.1開放式數(shù)據(jù)庫連接(ODBC),(8)單擊“測試數(shù)據(jù)源”按鈕,如果DSN創(chuàng)建成功,則“SQL Server ODBC 數(shù)據(jù)源測試”對話框?qū)?huì)顯示測試成功的消息,如圖所示。,14.1開放式數(shù)據(jù)庫連接(ODBC),(9)單擊“確定”按鈕,完成配置SQL Serve:數(shù)據(jù)源的操作。返回到“系統(tǒng)DSN”標(biāo)簽頁中,則會(huì)看到剛剛建立好的數(shù)據(jù)源。 注意:在配置ODBC數(shù)據(jù)源以前,請確定數(shù)據(jù)庫已建立完成,如果是配置SQL Server數(shù)據(jù)源,還得確定SQL Server處于運(yùn)行狀態(tài)。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),14.2.1 ActiveX數(shù)據(jù)對象(ADO ) ADO包括Command,Connection等七個(gè)對象和一個(gè)動(dòng)態(tài)的Properties集合,絕大部分的數(shù)據(jù)庫訪問任務(wù)都可以通過它們的組合來完成。ADO具體的七個(gè)對象為: Command:定義對數(shù)據(jù)源進(jìn)行操作的命令; Connection:建立一個(gè)數(shù)據(jù)源的連接; Error:提供數(shù)據(jù)訪問錯(cuò)誤的細(xì)節(jié); Field:表示一般數(shù)據(jù)類型的字段; Parameter:表示Command對象的參數(shù); Property:表示由數(shù)據(jù)源定義ADO對象的動(dòng)態(tài)特性; Recordset:數(shù)據(jù)庫命令結(jié)果集對象。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),通過ADO訪問數(shù)據(jù)庫通常經(jīng)過下列步驟。 創(chuàng)建數(shù)據(jù)庫源名,即創(chuàng)建和配置ODBC數(shù)據(jù)源。 創(chuàng)建數(shù)據(jù)庫鏈接 如果要訪問數(shù)據(jù),必須首先創(chuàng)建與數(shù)據(jù)庫的鏈接,其語法如下: Set Conn=Server CreateObject (“ADOBD. CONNECTION“) 這條語句創(chuàng)建了鏈接對象Conn,然后打開該連接,其語法格式為: Conn. Open “dsn_name,“username“,“password“ 其中該連接的DSN名為“dsn_ name“,”username”、“password”分別表示訪問數(shù)據(jù)庫的用戶名和口令,為可選參數(shù)。 在這里我們主要介紹Connection對象、Command對象和Recordset對象。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),14.2.2 Connection對象 Connection 對象表示數(shù)據(jù)源的唯一會(huì)話。在使用客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng)的情況下,該對象可以等價(jià)于到服務(wù)器的實(shí)際網(wǎng)絡(luò)連接。Connection 對象的某些集合、方法或?qū)傩钥赡軣o效,這取決于提供者支持的功能。 使用Connection對象的集合、方法和屬性可以執(zhí)行下列操作: (1)在打開連接前使用ConnectionString,ConnectionTimeout和Mode屬性對連接進(jìn)行配置。 (2)使用DefaultDatabase屬性設(shè)置連接的默認(rèn)數(shù)據(jù)庫。 (3)使用IsolationLevel屬性為在連接上打開的事務(wù)設(shè)置隔離級別。 (4)使用Provider屬性指定OLE DB提供者。 (5)Open方法建立到數(shù)據(jù)源的物理連接。使用Close方法將其切斷。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),(6)Execute方法執(zhí)行對連接的命令,并使用CommandTimeout屬性對執(zhí)行進(jìn)行配置。 (7)可使用BeginTrans,CommitTrans和RollbackTrans方法以及Attributes屬性管理打開的連接上的事務(wù)(如果提供者支持則包括嵌套的事務(wù))。 (8)使用Errors集合檢查數(shù)據(jù)源返回的錯(cuò)誤。 (9)通過Version屬性讀取所使用的ADO執(zhí)行版本。 (10)使用OpenSchema方法獲取數(shù)據(jù)庫綱要信息。 ADO連接數(shù)據(jù)庫的兩種方式。 (1)通過數(shù)據(jù)源名稱(DSN)建立連接 先設(shè)置好DSN后,通過ADO的Connection對象實(shí)現(xiàn)數(shù)據(jù)庫的連接。其語法格式如下: ConnectionString=“DSN=數(shù)據(jù)源名稱;UID=用戶名;PWD=口令”,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),(2)直接使用數(shù)據(jù)庫文件名稱或數(shù)據(jù)源名稱建立連接 直接使用數(shù)據(jù)庫的文件名(比如Access,Paradox或FoxPro的數(shù)據(jù)庫文件)或者SQLServer的數(shù)據(jù)庫,也可建立數(shù)據(jù)庫的連接。其語法格式如下: Connectionstring=“Provide=提供者名稱;DSN=數(shù)據(jù)源名稱;DRIVER=驅(qū)動(dòng)程序名稱;SERVER=服務(wù)器名稱;DATABASE=數(shù)據(jù)庫名稱;UID=用戶名;PWD=口令” 1Connection對象的屬性 Connection對象的屬性如下: (1) Connection String屬性 該屬性是一個(gè)字符串。包含用來建立到數(shù)據(jù)源的連接的信息。ADO支持的4個(gè)參數(shù)如下: Providr:指定連接所用的供應(yīng)器的名稱。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù), File Name:指定包含預(yù)設(shè)連接信息的特定供應(yīng)器的文件名。 Remote Provider:指定打開客戶端連接(只適用于遠(yuǎn)程數(shù)據(jù)服務(wù))時(shí)使用的供應(yīng)器的名稱。 Remote Serve:指定打開客戶端連接(只適用于遠(yuǎn)程數(shù)據(jù)服務(wù))時(shí)使用的服務(wù)器的路徑名。 (2)CommandTimeout屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。指示在終止嘗試和產(chǎn)生錯(cuò)誤之前執(zhí)行命令期間需等待的秒數(shù)。默認(rèn)值為30秒。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),(3)Attributes 屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。設(shè)置或返回Connection對象的特性。并非所有的數(shù)據(jù)提供者都支持這種屬性。它可取兩個(gè)值: AdXactCommitRetaining:執(zhí)行保留的提交,即通過自動(dòng)調(diào)用CommitTrans啟動(dòng)新事務(wù)。并非所有的數(shù)據(jù)提供者都支持這種屬性。 AdXactCommitRetaining:執(zhí)行保留的終止,即通過自動(dòng)調(diào)用RollbackTrans啟動(dòng)新事務(wù)。并非所有的數(shù)據(jù)提供者都支持這種屬性。 (4) DefaultDatabase屬性 該屬性是一個(gè)字符串。包含Connection對象的默認(rèn)數(shù)據(jù)庫名稱。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),(5) CursorLocation屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。包含光標(biāo)服務(wù)程序的默認(rèn)位置。這個(gè)值將由使用該Connection對象的Recordset對象自動(dòng)繼承。 (6) ConnectionTimeout屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。指示在終止嘗試和產(chǎn)生錯(cuò)誤前建立連接期間所等待的秒數(shù)。默認(rèn)值為30秒。 (7)Mode屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。指示可以獲得的數(shù)據(jù)修改權(quán)限。 (8) Provider屬性 指示Connection對象提供者的名稱。 (9)State屬性 該屬性是一個(gè)Long型數(shù)據(jù)值。說明Connection對象的當(dāng)前狀態(tài)。 (10)Version屬性 該屬性是一個(gè)字符串。包含ADO目前的版本號。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),2 Connection 對象的方法 (1)BeginTrans,CommitTrans,RollbackTrans方法 BeginTrans方法啟動(dòng)新事物,即表示一個(gè)操作的開始。 CommitTrans方法保存所有更改并結(jié)束當(dāng)前事務(wù)。 RollbackTrans方法取消當(dāng)前事務(wù)中所做的任何更改并結(jié)束事務(wù)。其語法格式如下: level=Connection對象.BeginTrans() Connection對象.BeginTrans Connection對象.CommitTrans Connection對象.RollbackTrans (2) Cancel方法 該方法終止一項(xiàng)由Execute或Open方法啟動(dòng)的異步任務(wù)。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),(3) Close方法 該方法用于關(guān)閉與數(shù)據(jù)提供者之間的連接。也可用于關(guān)閉任何處于打開狀態(tài)的Recordset對象,并可以把任意一個(gè)Command對象的ActiveConnection屬性設(shè)置成Nothing。 (4)Execute方法 該方法執(zhí)行指定的命令。返回一個(gè)Recordset對象。其語法格式如下: 對于不按行返回的命令字符串: Connection對象.Execute CommandText,RecordsAffected,Options 對于按行返回的命令字符串: Set Recordset=Connection對象.Execute (CommandText,RecordsAffected,Options) (5) Open方法 該方法打開到數(shù)據(jù)源的連接。其語法格式如下: Connection對象.Open ConnectionString,UserID,Password,Options,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),(6) OpenSchema方法 該方法從數(shù)據(jù)提供者處返回?cái)?shù)據(jù)庫信息。其語法格式如下: Set Recordset=Connection對象.OpenSchema(QueryType,Criteria,SchemaID) 3Connection對象的事件 Connection對象的事件如下。 (1)BeginTransComplete事件 該事件在BeginTrans方法已經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。 (2) CommitTransComplete事件 該事件在CommitTrans方法己經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。 (3) ConnectComplete事件 該事件在連接開始后被觸發(fā)執(zhí)行。 (4) Disconnect事件 該事件在連接結(jié)束后被觸發(fā)執(zhí)行。,(5)ExecuteComplete事件 該事件在Execute方法已經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。 (6) InfoMessage事件 該事件在當(dāng)前連接收到警告信息時(shí)被觸發(fā)執(zhí)行。 (7)RollbackTransComplete事件 該事件在RollbackTrans方法己經(jīng)以異步方式運(yùn)行完成時(shí)被觸發(fā)執(zhí)行。 (8) Wi1lConnect事件 該事件在連接啟動(dòng)前被觸發(fā)執(zhí)行。 (9) Wi1lExecute事件 該事件在命令被執(zhí)行前被觸發(fā)執(zhí)行。 14.2.3 Command對象 Command對象用于向已建立的連接發(fā)出一條命令,通常是SQL語句,或者是數(shù)據(jù)庫存儲(chǔ)過程。雖然Connection對象己經(jīng)有Execute方法可以用于運(yùn)行SQL語句,但是Command對象提供了更專門的運(yùn)行方式和參數(shù)傳遞。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),1Command對象的屬性 Command對象的屬性如下。 (1)ActiveConnection屬性 該屬性是一個(gè)指示指定的Command對象當(dāng)前所屬的Connection對象。 (2) CommandText屬性 該屬性是一個(gè)String型值。包含SQL語句、存儲(chǔ)過程或其他將被執(zhí)行的提供者命令。 (3) CommandTimeout屬性 該屬性是一個(gè)Long型數(shù)值。指示在終止嘗試和產(chǎn)生錯(cuò)誤之前執(zhí)行命令期間需等待的時(shí)間(單位為秒)。默認(rèn)值為30秒。 (4) CommandType屬性 該屬性是一個(gè)枚舉型數(shù)值,,(5) Name屬性 該屬性是一個(gè)String型數(shù)據(jù),指出對象的名稱。 (6) Parameters屬性 該屬性是Parameters集合的一個(gè)應(yīng)用對象。包含要傳遞給一個(gè)存儲(chǔ)過程或一個(gè)參數(shù)化查詢的參數(shù)。 (7) Prepared屬性 該屬性是一個(gè)布爾型數(shù)值。當(dāng)取True時(shí),表示命令執(zhí)行之前將被優(yōu)化。 (8) Properties屬性 該屬性是Properties集合的一個(gè)引用對象,包含關(guān)于Command對象的附加信息。 (9) State屬性 該屬性是一個(gè)Long型數(shù)值。指出Command對象的當(dāng)前狀態(tài)。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),2Command對象的方法 Command對象的方法如下。 (1)Cancel方法 (2) CreateParameter方法 (3)Execute方法 3Parameters集合和Parameter對象 (1)Parameters集合 Parameters集合用在Command對象中,其作用是傳遞執(zhí)行CommandText命令所需要的參數(shù)。其主要屬性如下。 Count屬性 Item屬性 Append方法 Delete方法 Refresh方法,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),(2) Parameter對象 一個(gè)Parameter對象是Parameters集合中的一個(gè)成員,其常用的屬性如下: Name屬性 Type屬性 Direction屬性 Size屬性 Value屬性 14.2.4 Recordset 對象 在ADO的所有對象中,Recordset對象是使用最多的,它包含某個(gè)SQL查詢返回的數(shù)據(jù)庫記錄集,以及記錄集中的游標(biāo)(Cursor),Recordset對象是一個(gè)跟數(shù)據(jù)庫中的表相對應(yīng)的結(jié)構(gòu),也可以理解成具有字段(Fields)和字段值(Value)的對象,在這些記錄中可以向前一條或向后一條移動(dòng)。,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),1Recordset對象的屬性 (1)AbsolutePage屬性 (2) AbsolutePosition屬性 (3) ActiveCommand屬性 (4) ActiveConnection屬性 (5) BOF和EOF屬性 2Recordset對象的方法 Recordset對象的方法如下。 (1) AddNew方法 (2)Cancel方法 (3)CancelBatch方法 ( 4 ) CancelUpdate方法 (5)Clone方法 ,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),3Recordset對象的事件 (1)EndOfRecordset事件 (2) FetchComplete事件 (3) FetchProgress事件 (4) FieldChangeComplete事件 (5)MoveComplete事件 ,14. 2使用ADO操作數(shù)據(jù)庫中的數(shù)據(jù),ADO .NET由Microsoft ActiveX Data Objects (ADO)改進(jìn)而來,它提供平臺(tái)互用和可收縮的數(shù)據(jù)訪問功能。它雖然始于ADO,是一個(gè)改進(jìn)了的ADO的新版本,但ADO. NET最終演變成了一個(gè)和ADO非常不同的技術(shù)。ADO. NET的應(yīng)用重點(diǎn)是Internet和基于Web的應(yīng)用程序??梢詫DO. NET對象模型劃分為兩個(gè)組件:DataSet和數(shù)據(jù)提供程序。DataSet是一個(gè)特殊的對象,它包含有一個(gè)或者多個(gè)表。數(shù)據(jù)提供程序則是由Connection、Command、DataReader和DataAdapter組合而成的。,14.3 ADO.NET,ADO.NET數(shù)據(jù)對象如下: (1) Command對象 用于定義要在DBMS上執(zhí)行的操作,如添加、刪除或者更新一條記錄。在通常情況下,并不需要使用ADO. NET創(chuàng)建一個(gè)Command對象,除非需要完成特殊的工作。在DataAdapter對象中,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論