ado連接數(shù)據(jù)庫_第1頁
ado連接數(shù)據(jù)庫_第2頁
ado連接數(shù)據(jù)庫_第3頁
ado連接數(shù)據(jù)庫_第4頁
ado連接數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫編程VC+程序設(shè)計 連接數(shù)據(jù)庫的四種方式 ODBC(Open DataBase Connectivity) 提供了應(yīng)用程序接口API。使得任何一個數(shù)據(jù)庫都可以通過ODBC驅(qū)動器與指定的DBMS相聯(lián)。用戶的程序可以通過調(diào)用ODBC驅(qū)動管理器中相應(yīng)的驅(qū)動程序達到管理數(shù)據(jù)庫的目的。訪問數(shù)據(jù)庫時,是由ODBC管理器將應(yīng)用程序的數(shù)據(jù)庫訪問請示傳遞給相應(yīng)的數(shù)據(jù)庫驅(qū)動程序,驅(qū)動程序再用SQL語句完成DBMS的訪問任務(wù)。 DAO(Data Access Objects ) DAO使用Microsoft Jet提供的數(shù)據(jù)庫訪問對象集直接訪問DBMS,速度比ODBC要快。 OLE DB是微軟是微軟“發(fā)明發(fā)明

2、”的,用來淘汰的,用來淘汰ODBC的,的,OLE DB不光可以連接各種數(shù)據(jù)庫,還可以連接不光可以連接各種數(shù)據(jù)庫,還可以連接exchange、活、活動目錄、甚至操作系統(tǒng)文件目錄等各種數(shù)據(jù)庫源(也需要動目錄、甚至操作系統(tǒng)文件目錄等各種數(shù)據(jù)庫源(也需要分別使用不同的分別使用不同的“驅(qū)動程序驅(qū)動程序”)ADO也是微軟的,是用來淘汰早起微軟的也是微軟的,是用來淘汰早起微軟的RDO、DAO的的(ADO可以做可以做RDO、DAO能做的所有事),能做的所有事),ADO在上層,在上層,通過下面的通過下面的ODBC或者或者OLE DB來訪問數(shù)據(jù)源(注意不是來訪問數(shù)據(jù)源(注意不是數(shù)據(jù)庫,因為可訪問范圍包括活動目錄等

3、各種數(shù)據(jù))。不數(shù)據(jù)庫,因為可訪問范圍包括活動目錄等各種數(shù)據(jù))。不過微軟目前的過微軟目前的ODBC實際是通過實際是通過OLE DB訪問數(shù)據(jù)源的。訪問數(shù)據(jù)源的。層次關(guān)系:層次關(guān)系:應(yīng)用程序應(yīng)用程序 - ADO - ODBC - OLE DB - 數(shù)據(jù)源數(shù)據(jù)源或者或者應(yīng)用程序應(yīng)用程序 - ADO - OLE DB - 數(shù)據(jù)源數(shù)據(jù)源 ADO的概念 訪問數(shù)據(jù)庫ADO簡介簡介 ADO(ActiveX Data Object)是)是Microsoft的數(shù)據(jù)庫應(yīng)用程序開發(fā)的新接口,的數(shù)據(jù)庫應(yīng)用程序開發(fā)的新接口,是建立在是建立在OLE DB之上的高級數(shù)據(jù)庫訪問技術(shù)。之上的高級數(shù)據(jù)庫訪問技術(shù)。 ADO技術(shù)基于技術(shù)

4、基于COM(Component Object Model),具有),具有COM組件的諸多組件的諸多優(yōu)點,可以用來構(gòu)造可復用應(yīng)用框架,被多種語言支持,能夠訪問關(guān)系數(shù)據(jù)庫、優(yōu)點,可以用來構(gòu)造可復用應(yīng)用框架,被多種語言支持,能夠訪問關(guān)系數(shù)據(jù)庫、非關(guān)系數(shù)據(jù)庫以及所有的文件系統(tǒng)。非關(guān)系數(shù)據(jù)庫以及所有的文件系統(tǒng)。 另外,另外,ADO還支持各種客戶還支持各種客戶/服務(wù)器模式與基于服務(wù)器模式與基于Web的數(shù)據(jù)操作,具有遠程數(shù)的數(shù)據(jù)操作,具有遠程數(shù)據(jù)服務(wù)據(jù)服務(wù)RDS(Remote Data Service)的特性,是遠程數(shù)據(jù)存取的發(fā)展方向。的特性,是遠程數(shù)據(jù)存取的發(fā)展方向。應(yīng)用程序應(yīng)用程序ADOOLEDB關(guān)系數(shù)

5、據(jù)庫關(guān)系數(shù)據(jù)庫文本文本目錄數(shù)據(jù)目錄數(shù)據(jù)主機數(shù)據(jù)主機數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)電子郵件電子郵件地理信息地理信息圖形信息圖形信息ADO技術(shù)特點技術(shù)特點 易于使用易于使用 高速訪問數(shù)據(jù)源高速訪問數(shù)據(jù)源 可以訪問不同的數(shù)據(jù)源可以訪問不同的數(shù)據(jù)源 可以用于可以用于Microsoft ActiveX頁頁 程序占用的內(nèi)存程序占用的內(nèi)存少少 ADO ADO的概念的概念 1. ADO1. ADO對象模型對象模型 2. Connection2. Connection對象對象 3. Command3. Command對象對象 4. Recordset4. Recordset對象對象1、ADO對象模型對象模型 連接

6、對象連接對象Connection 命令對象命令對象Command 參數(shù)對象參數(shù)對象Parameter 記錄集對象記錄集對象Recordset 字段對象字段對象Field 屬性對象屬性對象Property Errors集合集合 Parameters集合集合 Fields集合集合 Properties集合集合 ADOADO對象模型提供了對象模型提供了7 7種對象、種對象、4 4種集合。分別為:種集合。分別為:圖圖1 ADO對象模型對象模型 ADO ADO對象模型包括對象模型包括7 7個對象和個對象和3 3個集合,如圖個集合,如圖1 1所示。所示。其中對象及集合的說明見表其中對象及集合的說明見表1

7、1。表表1 ADO1 ADO對象描述對象描述對象對象描述描述Connection(連接對象)(連接對象)用來建立數(shù)據(jù)源和用來建立數(shù)據(jù)源和ADO程序之間的連接程序之間的連接Command(命令對象)(命令對象) 用來嵌入用來嵌入SQL查詢,包括對存儲過程的調(diào)用查詢,包括對存儲過程的調(diào)用Parameter(參數(shù)對象)(參數(shù)對象) 用來傳遞參數(shù)給用來傳遞參數(shù)給SQL查詢,在使用存儲過程查詢,在使用存儲過程時用到時用到Recordset(記錄集對(記錄集對象)象)用來瀏覽及操作實際數(shù)據(jù)庫內(nèi)的數(shù)據(jù),這是用來瀏覽及操作實際數(shù)據(jù)庫內(nèi)的數(shù)據(jù),這是非常重要的一個對象非常重要的一個對象Field(字段對象)(字段

8、對象)用來取得一個記錄集用來取得一個記錄集(Recordset)內(nèi)不同字段內(nèi)不同字段的值的值Error(錯誤對象)(錯誤對象)用來返回一個數(shù)據(jù)庫連接用來返回一個數(shù)據(jù)庫連接(Connection)上的錯上的錯誤誤Property(屬性對象)(屬性對象)指明一個指明一個ADO對象的屬性對象的屬性1 1、ADOADO對象模型對象模型表表1 ADO1 ADO集合描述集合描述集合集合描述描述Errors所有的所有的Error對象集合。這個集合用來響應(yīng)一個連接對象集合。這個集合用來響應(yīng)一個連接(Connection) 上的單一錯誤上的單一錯誤Parameters所有的所有的Parameter對象集合。這個

9、集合關(guān)聯(lián)著一個對象集合。這個集合關(guān)聯(lián)著一個Command對象對象Fields所有的字段對象集合。這個集合關(guān)聯(lián)著一個所有的字段對象集合。這個集合關(guān)聯(lián)著一個Recordset對象的所有對象的所有字段字段Properties所有的所有的Property對象集合。這個集合關(guān)聯(lián)著對象集合。這個集合關(guān)聯(lián)著Connection、Command、Recordset或者或者Field對象對象 說明:在說明:在ADOADO對象模型中最為重要的對象是三個一對象模型中最為重要的對象是三個一般對象:般對象:ConnectionConnection對象、對象、CommandCommand對象和對象和RecordsetRe

10、cordset對象,通過這三個對象,可以方便地建立數(shù)據(jù)庫連接,對象,通過這三個對象,可以方便地建立數(shù)據(jù)庫連接,執(zhí)行執(zhí)行SQLSQL查詢及存取查詢的的結(jié)果。查詢及存取查詢的的結(jié)果。2. Connection2. Connection對象對象 使用使用ADOADO對各種數(shù)據(jù)源進行各種操作,其中,對各種數(shù)據(jù)源進行各種操作,其中,ConnectionConnection對象是必不可少的,對象是必不可少的,ConnectionConnection對象可以對象可以用來在應(yīng)用程序和數(shù)據(jù)庫中建立一條數(shù)據(jù)傳輸連線,用來在應(yīng)用程序和數(shù)據(jù)庫中建立一條數(shù)據(jù)傳輸連線,在這個基礎(chǔ)之上可以使用在這個基礎(chǔ)之上可以使用Comm

11、andCommand對象及對象及RecordseRecordse對對象來對象來對ConnectionConnection對象所連接的數(shù)據(jù)庫進行插入刪除、對象所連接的數(shù)據(jù)庫進行插入刪除、更新和查詢等操作。同撥打電話一樣,建立一個更新和查詢等操作。同撥打電話一樣,建立一個ConnectionConnection對象就像是拿起話筒,打開一個對象就像是拿起話筒,打開一個ConnectionConnection對象類似于撥號,而使用對象類似于撥號,而使用CommandCommand對象及對象及RecordseRecordse對象已經(jīng)是在用這條線路通話了。對象已經(jīng)是在用這條線路通話了。 Connectio

12、n Connection對象的常用屬性見表對象的常用屬性見表2 2。表表2 Connection2 Connection對象的常用屬性對象的常用屬性屬性屬性意義描述意義描述CommandTimeout定義了使用定義了使用Execute方法運行一條方法運行一條SQL命令的最長時限,命令的最長時限,時限結(jié)束才能夠中斷并產(chǎn)生錯誤。默認值為時限結(jié)束才能夠中斷并產(chǎn)生錯誤。默認值為30秒秒(設(shè)定為設(shè)定為0表示沒有限制表示沒有限制)ConnectionString設(shè)定連接數(shù)據(jù)源的信息,包括設(shè)定連接數(shù)據(jù)源的信息,包括FileName、Password、Userld、DataSource、Provider等參數(shù)

13、等參數(shù)ConnectionTimeout定義了使用定義了使用open方法連接數(shù)據(jù)源的最長等待時間,默認方法連接數(shù)據(jù)源的最長等待時間,默認值為值為15秒秒(設(shè)定為設(shè)定為0時表示沒有限制時表示沒有限制)DefaultDatabase定義連接的默認數(shù)據(jù)庫定義連接的默認數(shù)據(jù)庫Mode建立連接之前,設(shè)定連接的讀寫方式,決定是否可更改建立連接之前,設(shè)定連接的讀寫方式,決定是否可更改目前數(shù)據(jù)。目前數(shù)據(jù)。0-不設(shè)定(默認)、不設(shè)定(默認)、1-只讀、只讀、2-只寫、只寫、3-讀寫讀寫Provider設(shè)置連接的數(shù)據(jù)提供者設(shè)置連接的數(shù)據(jù)提供者(數(shù)據(jù)庫管理程序數(shù)據(jù)庫管理程序),默認值是,默認值是MSDASQL(Mi

14、crosotODBC For OLEDB)State讀取當前鏈接對象的狀態(tài),取讀取當前鏈接對象的狀態(tài),取0表示關(guān)閉,表示關(guān)閉,1表示打開表示打開 Connection Connection對象的常用方法見表對象的常用方法見表3 3。表表3 Connection3 Connection對象的方法及描述對象的方法及描述方法方法意義描述意義描述Open建立一個與數(shù)據(jù)源的連接對象建立一個與數(shù)據(jù)源的連接對象Close關(guān)閉與數(shù)據(jù)源的連接,并且釋放與連接有關(guān)的系統(tǒng)資源關(guān)閉與數(shù)據(jù)源的連接,并且釋放與連接有關(guān)的系統(tǒng)資源Execute執(zhí)行執(zhí)行SQL命令或存儲過程,以實現(xiàn)與數(shù)據(jù)庫的通訊命令或存儲過程,以實現(xiàn)與數(shù)據(jù)庫

15、的通訊BeginTrans開始一個新的事務(wù),即在內(nèi)存中為事務(wù)開辟一片內(nèi)存緩沖區(qū)開始一個新的事務(wù),即在內(nèi)存中為事務(wù)開辟一片內(nèi)存緩沖區(qū)CommitTrans提交事務(wù),即把一次事務(wù)中所有變動的數(shù)據(jù)從內(nèi)存緩沖區(qū)一次提交事務(wù),即把一次事務(wù)中所有變動的數(shù)據(jù)從內(nèi)存緩沖區(qū)一次性地寫入硬盤,結(jié)束當前事務(wù)并可能開始一個新的事務(wù)性地寫入硬盤,結(jié)束當前事務(wù)并可能開始一個新的事務(wù)RollbackTrans回滾事務(wù),即取消開始此次事務(wù)以來對數(shù)據(jù)源的所有操作,并回滾事務(wù),即取消開始此次事務(wù)以來對數(shù)據(jù)源的所有操作,并結(jié)束本次事務(wù)操作結(jié)束本次事務(wù)操作 下面對部分方法進行詳細說明。下面對部分方法進行詳細說明。 Open Open

16、方法:建立一個與數(shù)據(jù)源的連接對象,打開方法:建立一個與數(shù)據(jù)源的連接對象,打開與數(shù)據(jù)源的連接。其語法格式為:與數(shù)據(jù)源的連接。其語法格式為:Connobject.Open(connectionstring,UserId, Password)Connobject.Open(connectionstring,UserId, Password) 其中:其中:ConnectstringConnectstring為可選參數(shù),它是一個字符串為可選參數(shù),它是一個字符串變量,包含鏈接的信息。用法參見變量,包含鏈接的信息。用法參見ConectionstringConectionstring屬性。屬性。 UserId

17、UserId為可選參數(shù),它是一個字符串變量,包含建立為可選參數(shù),它是一個字符串變量,包含建立連接時訪問數(shù)據(jù)庫使用的用戶名稱。連接時訪問數(shù)據(jù)庫使用的用戶名稱。 PasswordPassword為可選參數(shù),它是一個字符串變量,包含建為可選參數(shù),它是一個字符串變量,包含建立連接時訪問數(shù)據(jù)庫使用的密碼。立連接時訪問數(shù)據(jù)庫使用的密碼。 Close Close方法:關(guān)閉與數(shù)據(jù)源的連接,并且釋放方法:關(guān)閉與數(shù)據(jù)源的連接,并且釋放與連接有關(guān)的系統(tǒng)資源。其語法格式為:與連接有關(guān)的系統(tǒng)資源。其語法格式為:Connobject.closeConnobject.close 其中:其中:ConnobjectConnob

18、ject為已經(jīng)創(chuàng)建的為已經(jīng)創(chuàng)建的ConnectionConnection對象。對象。 使用使用CloseClose方法關(guān)閉方法關(guān)閉ConnectionConnection對象,但沒有從對象,但沒有從內(nèi)存中刪除該對象。因此一個關(guān)閉的內(nèi)存中刪除該對象。因此一個關(guān)閉的connectionconnection對象對象還 可 以 用還 可 以 用 o p e no p e n 方 法 打 開 而 不 必 再 次 創(chuàng) 建 一 個方 法 打 開 而 不 必 再 次 創(chuàng) 建 一 個connectionconnection對象。此外,在使用對象。此外,在使用closeclose方法關(guān)閉連接方法關(guān)閉連接時,也將關(guān)

19、閉以此連接相關(guān)的所有活動的時,也將關(guān)閉以此連接相關(guān)的所有活動的recoordsetrecoordset對象。對象。 Execute Execute方法:執(zhí)行方法:執(zhí)行SQLSQL命令或存儲過程,以命令或存儲過程,以實現(xiàn)與數(shù)據(jù)庫的通訊。其語法為:實現(xiàn)與數(shù)據(jù)庫的通訊。其語法為: 有返回記錄的格式:有返回記錄的格式:pRspRs = Connobject.Execute(CommandText = Connobject.Execute(CommandText, , ReccordAffected ReccordAffected, Options), Options) 無返回記錄的格式:無返回記錄的格

20、式:Connobject.Execute CommandTextConnobject.Execute CommandText, , ReccordAffected ReccordAffected, Options, Options 其中:其中:pRspRs為創(chuàng)建的為創(chuàng)建的RecordsedRecordsed對象;對象;ConnobjectConnobject為已經(jīng)創(chuàng)建的為已經(jīng)創(chuàng)建的ConnectionConnection對象。對象。 CommandTypeCommandType是一個字符串,它包含一個表名,是一個字符串,它包含一個表名,或某個將被執(zhí)行的或某個將被執(zhí)行的SQLSQL語句;語句;R

21、eccordAffectedReccordAffected為可選為可選參數(shù),返回此次操作所影響的記錄數(shù)。參數(shù),返回此次操作所影響的記錄數(shù)。OptionsOptions為可為可選參數(shù),用來指定參數(shù)的選參數(shù),用來指定參數(shù)的CommandTextCommandText參數(shù)的性質(zhì),參數(shù)的性質(zhì),即用來指定即用來指定ADOADO如何解釋如何解釋CommandTextCommandText參數(shù)的參數(shù)值,參數(shù)的參數(shù)值,其取值與意義見表其取值與意義見表4 4。表表4 Options4 Options參數(shù)的取值及意義參數(shù)的取值及意義值值意義描述意義描述1表示被執(zhí)行的字符串包含一個命令文本表示被執(zhí)行的字符串包含一個

22、命令文本2表示被執(zhí)行的字符串包含一個表名表示被執(zhí)行的字符串包含一個表名4表示被執(zhí)行的字符串包含一個存儲過程名表示被執(zhí)行的字符串包含一個存儲過程名8沒有指定字符串的內(nèi)容沒有指定字符串的內(nèi)容(這是默認值這是默認值)例:Demo5、6_13. Command對象 Command對象用來定義數(shù)據(jù)庫的查詢動作,這個查詢一般采用SQL語句,大部分數(shù)據(jù)庫都會支持SQL語言解釋。通過和SQL Server的查詢及存儲過程的良好結(jié)合,Command對象有更強大的數(shù)據(jù)庫訪問能力,無論是對數(shù)據(jù)庫的插入、更新和刪除這類無需返回結(jié)果集的操作,還是對Select查詢這樣需返回結(jié)果集的操作都一樣簡單。 Command Co

23、mmand對象的常用屬性見表對象的常用屬性見表5 5。表表5 Command5 Command對象的屬性對象的屬性屬性屬性意義描述意義描述ActiveConnection定義了定義了Command對象的連接信息,用來指定當前的對象的連接信息,用來指定當前的Command對象的操作對象是哪個對象的操作對象是哪個Connection對象對象CommandText定義傳送給數(shù)據(jù)提供者的命令文本。它被用來設(shè)定或返回一定義傳送給數(shù)據(jù)提供者的命令文本。它被用來設(shè)定或返回一個字符串,該字符串包含一個個字符串,該字符串包含一個SQL命令、一個表名或一個存命令、一個表名或一個存儲過程名。默認值為空字符串儲過程名

24、。默認值為空字符串CommandType指示指示CommandTem屬性中設(shè)定的屬性中設(shè)定的“命令字符串命令字符串”的類型的類型CommandTimeout用來設(shè)定等候運行一條命令的最長等待時間,超過該時間命用來設(shè)定等候運行一條命令的最長等待時間,超過該時間命令對象中止并產(chǎn)生一個錯誤。設(shè)定為令對象中止并產(chǎn)生一個錯誤。設(shè)定為0時表示無限期等待時表示無限期等待Name用來設(shè)置和讀取一個用來設(shè)置和讀取一個Command對象的名字對象的名字Prepared該屬性指示在命令被執(zhí)行前是否要用命令創(chuàng)建一個預(yù)備語句該屬性指示在命令被執(zhí)行前是否要用命令創(chuàng)建一個預(yù)備語句State用來設(shè)置或讀取當前用來設(shè)置或讀取當

25、前Command對象的狀態(tài)是打開的或關(guān)閉對象的狀態(tài)是打開的或關(guān)閉的的 說明:說明:CommandTypeCommandType屬性指示屬性指示CammandTextCammandText屬性中屬性中設(shè)定的設(shè)定的“命令字符串命令字符串”的類型,即用來指的類型,即用來指ADOADO如何解如何解釋釋CammandTextCammandText參數(shù)的參數(shù)值,它的取值與意義與表參數(shù)的參數(shù)值,它的取值與意義與表4 4中中OptionsOptions參數(shù)的取值及意義相同。參數(shù)的取值及意義相同。 CommandCommand對象的常用方法有對象的常用方法有ExecuteExecute方法,用來運方法,用來運行

26、行CommandTextCommandText屬性所設(shè)定的屬性所設(shè)定的SQLSQL查詢、查詢、SQLSQL說明命令說明命令或存儲過程,以實現(xiàn)與數(shù)據(jù)庫的通訊。其語法為:或存儲過程,以實現(xiàn)與數(shù)據(jù)庫的通訊。其語法為: 有返回記錄的格式:有返回記錄的格式:_RecordsetPtr pRs = pCmd-Execute(NULL, NULL, adCmdText);例:Demo9、11其中:其中:pRspRs為創(chuàng)建的為創(chuàng)建的RecordsedRecordsed對象;對象;pCmdpCmd為已經(jīng)創(chuàng)建為已經(jīng)創(chuàng)建的的CommandCommand對象。對象。 RecordAfiectedRecordAfiec

27、ted為可選參數(shù),返回此次操作所影為可選參數(shù),返回此次操作所影響的記錄數(shù)。響的記錄數(shù)。ParametersParameters為可選參數(shù),表示一個為可選參數(shù),表示一個SQLSQL語句的參數(shù)集合。語句的參數(shù)集合。OptionsOptions為可選參數(shù),用來指定為可選參數(shù),用來指定ADOADO如何解釋如何解釋CommandTextCommandText參數(shù)的參數(shù)值,它的取值與意參數(shù)的參數(shù)值,它的取值與意義與表義與表4 4中中OptionsOptions參數(shù)的取值及意義相同。參數(shù)的取值及意義相同。4. Recordset4. Recordset對象對象 RecordsetRecordset對象對應(yīng)著

28、對象對應(yīng)著CommandCommand對象的查詢返回結(jié)對象的查詢返回結(jié)果,或者是直接建立的一個帶查詢的結(jié)果集。它把從果,或者是直接建立的一個帶查詢的結(jié)果集。它把從數(shù)據(jù)庫內(nèi)查詢到的結(jié)果封裝在一起,并提供簡單快捷數(shù)據(jù)庫內(nèi)查詢到的結(jié)果封裝在一起,并提供簡單快捷的方式去訪問每一條記錄內(nèi)每一字段的數(shù)據(jù)的方式去訪問每一條記錄內(nèi)每一字段的數(shù)據(jù). . RecordsetRecordset對象實際上是依附于對象實際上是依附于ConnectionConnection對象對象和和CommandCommand對象之上的。通過建立及開啟一個對象之上的。通過建立及開啟一個ConnectionConnection對象,可以

29、與我們關(guān)心的數(shù)據(jù)庫建立連線;對象,可以與我們關(guān)心的數(shù)據(jù)庫建立連線;通過使用通過使用CommandCommand對象,則可以告訴數(shù)據(jù)庫我們想要做對象,則可以告訴數(shù)據(jù)庫我們想要做什么:是插入一條記錄,還是查找符合條件的記錄;什么:是插入一條記錄,還是查找符合條件的記錄;通過使用通過使用RecordsetRecordset對象,則可以方便自如地操作對象,則可以方便自如地操作CommandCommand對象返回的結(jié)果。這三個對象中的每對象返回的結(jié)果。這三個對象中的每個都是個都是必要的,缺一不可。必要的,缺一不可。 (1) Recordset(1) Recordset對象的屬性對象的屬性 Records

30、etRecordset對象的常用屬性見表對象的常用屬性見表6 6。表表6 6 Recordset Recordset對象的常用屬性對象的常用屬性屬性屬性意義描述意義描述ActiveConnection定義了與數(shù)據(jù)提供者的連接信息,用來指定當前的定義了與數(shù)據(jù)提供者的連接信息,用來指定當前的RecordSet對象屬于哪個對象屬于哪個Connection對象對象Source指示指示RecordSet對象的數(shù)據(jù)源,可以是一個對象的數(shù)據(jù)源,可以是一個command對象名、對象名、SQL語句、數(shù)據(jù)庫表或存儲過程語句、數(shù)據(jù)庫表或存儲過程CursorType指定指定RecordSet對象所使用的光標類型對象所

31、使用的光標類型LockType表示編輯時記錄的鎖定類型表示編輯時記錄的鎖定類型Filter用來設(shè)定一個過濾條件,以便對用來設(shè)定一個過濾條件,以便對RecordSet記錄進行過濾記錄進行過濾CacheSize表示一個表示一個RecordSet對象在高速緩存中的記錄數(shù)對象在高速緩存中的記錄數(shù)Maxrecords執(zhí)行一個執(zhí)行一個SQL查詢時,返回查詢時,返回RecordSet對象的最大記錄數(shù)對象的最大記錄數(shù)Bof判斷記錄指針是否到了第一條記錄之前判斷記錄指針是否到了第一條記錄之前Eof判斷記錄指針是否到了最后一條記錄之后判斷記錄指針是否到了最后一條記錄之后RecordCount 返回返回Record

32、Set對象的記錄數(shù)對象的記錄數(shù)(在使用鍵盤光標時,該屬性返在使用鍵盤光標時,該屬性返回的可能是不太準確的數(shù)值;一般情況下,并不用這種方法回的可能是不太準確的數(shù)值;一般情況下,并不用這種方法來統(tǒng)計來統(tǒng)計RecordSet中的記錄數(shù),因為它的性能并不穩(wěn)定中的記錄數(shù),因為它的性能并不穩(wěn)定)Bookmark書簽標記,用來保存存當前記錄的位置書簽標記,用來保存存當前記錄的位置AbsolutePosition用來設(shè)定用來設(shè)定RecordSet對象中當前記錄的順序位置是第幾行記對象中當前記錄的順序位置是第幾行記錄錄PageSize表示表示RecordSet對象的頁面大小對象的頁面大小(每頁多少條記錄每頁多少

33、條記錄),默認值為,默認值為10PageCount表示表示RecordSet對象的頁面?zhèn)€數(shù)對象的頁面?zhèn)€數(shù)AbsolutePage表示當前記錄的頁號表示當前記錄的頁號EditMode指示當前記錄的編輯狀態(tài),指示當前記錄的編輯狀態(tài),0 已被編輯;已被編輯;1 已被修改而未已被修改而未提交;提交;2 存入數(shù)據(jù)庫的新記錄存入數(shù)據(jù)庫的新記錄Status對對RecordSet對象進行批量更新后,查詢當前記錄的狀態(tài)對象進行批量更新后,查詢當前記錄的狀態(tài) 說明:說明: CursorTypeCursorType屬性指定屬性指定RecordSetRecordSet對象所使用的光標類型。對象所使用的光標類型。不同的

34、光標類型決定了對不同的光標類型決定了對RecordSetRecordSet所能做的操作。所能做的操作。共有四種光標類型:共有四種光標類型:0 - 0 - 前滾光標前滾光標(ForwardOnlyCursor(ForwardOnlyCursor),),光標只能向前移動,執(zhí)行光標只能向前移動,執(zhí)行效效率高,是率高,是CursorCursor的默認值;的默認值;1 - 1 - 鍵盤光標鍵盤光標(KeysetCursor(KeysetCursor) ),光標可向前向后移動,光標可向前向后移動,RecordSetRecordSet記錄集同步反映自它創(chuàng)建后其他用戶所作的記錄集同步反映自它創(chuàng)建后其他用戶所作

35、的修改和刪除,但卻不能同步反映自它創(chuàng)建后其他用戶新修改和刪除,但卻不能同步反映自它創(chuàng)建后其他用戶新增加的記錄;增加的記錄;2 - 2 - 動態(tài)光標動態(tài)光標(DynamicCursor(DynamicCursor) ),光標可向前向后移動,任何時,光標可向前向后移動,任何時候候RecordSetRecordSet記錄集都同步反映其他用戶的任何操作;記錄集都同步反映其他用戶的任何操作;3 - 3 - 靜態(tài)光標靜態(tài)光標(StaticCursor(StaticCursor) ),光標可向前向后移動,自創(chuàng)建,光標可向前向后移動,自創(chuàng)建后后無法同步反映其他用戶所做的任何操作,它的功能簡單無法同步反映其他用

36、戶所做的任何操作,它的功能簡單但消耗資源少。但消耗資源少。 LockTypeLockType屬性表示編輯時記錄的鎖定類型。屬性表示編輯時記錄的鎖定類型。它決定了當不止一個用戶試圖同時改變一個記錄時,它決定了當不止一個用戶試圖同時改變一個記錄時,RecordSetRecordSet如何處理數(shù)據(jù)記錄。如何處理數(shù)據(jù)記錄。它的取值有:它的取值有:0 - 0 - 只讀鎖定,記錄只讀,不能更新只讀鎖定,記錄只讀,不能更新RecordSetRecordSet,為,為LockTypeLockType的默認值;的默認值;1 - 1 - 悲觀鎖定,編輯記錄開始立刻鎖定,直到提交給悲觀鎖定,編輯記錄開始立刻鎖定,直

37、到提交給數(shù)據(jù)提供者;數(shù)據(jù)提供者;2 - 2 - 樂觀鎖定,一次鎖定一條記錄,只有調(diào)用樂觀鎖定,一次鎖定一條記錄,只有調(diào)用UpdateUpdate方法提交數(shù)據(jù)時才鎖定記錄;方法提交數(shù)據(jù)時才鎖定記錄;3 - 3 - 樂觀的批量更新,允許同時更新多條記錄。樂觀的批量更新,允許同時更新多條記錄。 Filter Filter屬性用來設(shè)定一個過濾條件,以便對屬性用來設(shè)定一個過濾條件,以便對RecordSetRecordSet記錄進行過濾。使用的優(yōu)點是可以在已經(jīng)記錄進行過濾。使用的優(yōu)點是可以在已經(jīng)存在的存在的RecordSetRecordSet對象上進一步過濾出所需的記錄。對象上進一步過濾出所需的記錄。但這

38、種方式增加了系統(tǒng)的開銷。它有兩種使用方式:但這種方式增加了系統(tǒng)的開銷。它有兩種使用方式: 方式方式1 1:使用關(guān)系表達式,例如:使用關(guān)系表達式,例如:Rs.Filter = bhRs.Filter = bh 30 30 其中其中RsRs是已經(jīng)創(chuàng)建的是已經(jīng)創(chuàng)建的RecordSetRecordSet對象;對象;bhbh是是RecordSetRecordSet對象的字段(數(shù)值型)。對象的字段(數(shù)值型)。 方式方式2 2:使用準則常量:使用準則常量:0 - 0 - 清除以前的清除以前的FilterFilter,允許看見所有記錄;允許看見所有記錄;1 - 1 - 只允許查看已修改但未提交只允許查看已修改

39、但未提交的記錄;的記錄;2 - 2 - 允許查看最后刪除、允許查看最后刪除、ResyncResync、批量更新、批量更新、或刪除批量方式所影響的記錄;或刪除批量方式所影響的記錄;3 - 3 - 允許查看數(shù)據(jù)庫允許查看數(shù)據(jù)庫最后讀取結(jié)果的數(shù)據(jù)。例如:最后讀取結(jié)果的數(shù)據(jù)。例如:Rs.FilterRs.Filter = 1 = 1 可以實現(xiàn)更新整個批量記錄之前只顯示用戶修改可以實現(xiàn)更新整個批量記錄之前只顯示用戶修改的記錄,使用戶在提交數(shù)據(jù)之前能夠進行檢查。的記錄,使用戶在提交數(shù)據(jù)之前能夠進行檢查。 BookMarkBookMark屬性用來存儲當前記錄的位置。并屬性用來存儲當前記錄的位置。并非每一個數(shù)

40、據(jù)提供者都支持這個屬性。當創(chuàng)建一個允非每一個數(shù)據(jù)提供者都支持這個屬性。當創(chuàng)建一個允許使用許使用BookMarkBookMark屬性的屬性的RecordSetRecordSet對象時,給每個記對象時,給每個記錄都標上一個獨一無二的錄都標上一個獨一無二的BookMarkBookMark,利用,利用BookMarkBookMark可可以返回訪問過的記錄。以返回訪問過的記錄。 Status Status屬性對于多用戶連接管理特別有用,屬性對于多用戶連接管理特別有用,通過該屬性可以看出更新記錄的失敗原因。它的返回通過該屬性可以看出更新記錄的失敗原因。它的返回值和意義如表值和意義如表7 7所示。所示。表表

41、7 Status7 Status屬性的值和意義屬性的值和意義值值意義描述意義描述值值意義描述意義描述0記錄更新成功記錄更新成功1024存在記錄鎖定,新記錄未保存存在記錄鎖定,新記錄未保存l新紀錄新紀錄2048使用樂觀并發(fā)事件,未保存使用樂觀并發(fā)事件,未保存2記錄被修改記錄被修改4096用戶違反完整性規(guī)則,未保存用戶違反完整性規(guī)則,未保存4記錄被刪除記錄被刪除8192很多待定修改,記錄未保存很多待定修改,記錄未保存8記錄未被修改記錄未被修改16384與一存儲對象相沖突,未保存與一存儲對象相沖突,未保存16書簽不合法,記錄未保存書簽不合法,記錄未保存32768內(nèi)存不夠,記錄未保存內(nèi)存不夠,記錄未保

42、存64影響多個記錄,未保存影響多個記錄,未保存65536用戶沒有足夠權(quán)限,未保存用戶沒有足夠權(quán)限,未保存128指向一待定插入,記錄未保指向一待定插入,記錄未保存存131072違反基本數(shù)據(jù)庫原理,未保存違反基本數(shù)據(jù)庫原理,未保存256操作被取消,記錄未保存操作被取消,記錄未保存262144記錄已從數(shù)據(jù)源刪除記錄已從數(shù)據(jù)源刪除 (2) RecordSet(2) RecordSet對象的方法對象的方法 RecordSetRecordSet對象的方法及意義見表對象的方法及意義見表8 8。表表8 8 RecordSet RecordSet對象的方法及意義對象的方法及意義方法方法意義描述意義描述Open打

43、開一個打開一個RecordSet對象對象Close關(guān)閉一個關(guān)閉一個RecordSet對象并釋放相關(guān)的資源對象并釋放相關(guān)的資源Clone創(chuàng)建一個創(chuàng)建一個RecordSet對象的完全拷貝,但只有所用的對象的完全拷貝,但只有所用的RecordSet對象類型允許使用對象類型允許使用BookMarks時才能使用該方法時才能使用該方法MoveFirst把把RecordSet指針指向第一行記錄指針指向第一行記錄MoveLast把把RecordSet指針指向最后一條記錄指針指向最后一條記錄(該該RecordSet必須支持書必須支持書簽簽)MovePrevious把把RecordSet指針上移一行指針上移一行(

44、使用前應(yīng)判斷使用前應(yīng)判斷BOF是否為真;該是否為真;該RecordSet必須支持書簽必須支持書簽)Movenext把把RecordSet指針下移一行指針下移一行(使用前應(yīng)判斷使用前應(yīng)判斷EOF是否為真是否為真)Move把把RecordSet指針指向指定的記錄指針指向指定的記錄GetPows從一個從一個RecordSet對象讀取一行或多行記錄到一個數(shù)組中對象讀取一行或多行記錄到一個數(shù)組中NextRecordSet清除當前的清除當前的RecordSet并執(zhí)行下一條指令,以傳回下一個并執(zhí)行下一條指令,以傳回下一個RecordSet對象,如果沒有下一條指令則返回對象,如果沒有下一條指令則返回Nothi

45、ng給給RecordSetRequery重新執(zhí)行的重新執(zhí)行的SQL查詢操作,以更新查詢操作,以更新RecordSet對象中的數(shù)據(jù)對象中的數(shù)據(jù)Resync從數(shù)據(jù)源更新當前的從數(shù)據(jù)源更新當前的RecordSet記錄,實現(xiàn)與數(shù)據(jù)源的同步記錄,實現(xiàn)與數(shù)據(jù)源的同步Addnew增加一條空紀錄增加一條空紀錄Delete刪除當前記錄刪除當前記錄Update保存當前記錄的任何變動保存當前記錄的任何變動CancelUpdate取消前一個取消前一個Update方法所做的一切修改方法所做的一切修改UpdateBatchRecordSet工作在批量方式時,取消對工作在批量方式時,取消對RecordSet的更新的更新Su

46、ports獲取創(chuàng)建的獲取創(chuàng)建的RecordSet對象的能力信息對象的能力信息 說明:說明: Open Open方法:打開一個方法:打開一個RecordSetRecordSet對象。其語法對象。其語法格式為:格式為:Rs.OpenSource, ActiveConnectionRs.OpenSource, ActiveConnection , CursorType, LockType, CursorType, LockType, Option, Option例:Demo1_1 其中:其中:RsRs為已經(jīng)創(chuàng)建的為已經(jīng)創(chuàng)建的RecordSetRecordSet對象;對象;SourceSource為可

47、選參數(shù),可以是一個為可選參數(shù),可以是一個CommandCommand對象名、對象名、SQLSQL字符串字符串存儲過程或數(shù)據(jù)庫的表名;存儲過程或數(shù)據(jù)庫的表名;ActiveConnectionActiveConnection參見參見ActiveConnectionActiveConnection屬性;屬性;CursorTypeCursorType是是RecordSetRecordSet對對象所使用的光標類型,用法參見象所使用的光標類型,用法參見CursorTypeCursorType屬性;屬性;LockTypecLockTypec是編輯是編輯RecordSetRecordSet對象記錄時所使用的鎖

48、定對象記錄時所使用的鎖定類型,用法參見類型,用法參見LockTypeLockType屬性;屬性;OptionsOptions指示數(shù)據(jù)提指示數(shù)據(jù)提供者如何處理供者如何處理SourceSource的內(nèi)容類型,它的取值與意義見的內(nèi)容類型,它的取值與意義見表表4 4。 使用使用CloseClose方法關(guān)閉方法關(guān)閉RecordSetRecordSet對象,并不從對象,并不從內(nèi)存中刪除該對象,只是無法讀取其中的數(shù)據(jù),但仍內(nèi)存中刪除該對象,只是無法讀取其中的數(shù)據(jù),但仍然可以讀取它的屬性。因此一個關(guān)閉的然可以讀取它的屬性。因此一個關(guān)閉的ReccordSetReccordSet對對象還可以用象還可以用OpenO

49、pen方法打開并保持其原有屬性。如果正方法打開并保持其原有屬性。如果正在進行編輯更新數(shù)據(jù)的操作,在調(diào)用在進行編輯更新數(shù)據(jù)的操作,在調(diào)用CloseClose方法前必方法前必須先調(diào)用須先調(diào)用UpdateUpdate或或CancelUpdateCancelUpdate方法,否則將會出現(xiàn)方法,否則將會出現(xiàn)錯誤。如果以批量模式更新數(shù)據(jù)記錄錯誤。如果以批量模式更新數(shù)據(jù)記錄(Reccordset(Reccordset的的LockTypeLockType屬性設(shè)為屬性設(shè)為3)3),那么對緩沖區(qū)數(shù)據(jù)的修改將全,那么對緩沖區(qū)數(shù)據(jù)的修改將全部丟失。另外,使用部丟失。另外,使用CloneClone方法復制一個已經(jīng)打開的

50、方法復制一個已經(jīng)打開的RecordSetRecordSet對象,調(diào)用對象,調(diào)用CloseClose方法不影響任何復制的方法不影響任何復制的RecordSetRecordSet對象。對象。 Move Move方法用于把記錄指針指向指定的記錄。方法用于把記錄指針指向指定的記錄。其語法格式為:其語法格式為:Move n , startMove n , start 其中其中n n為要移動的記錄數(shù),取正時表示向前為要移動的記錄數(shù),取正時表示向前( (下下) )移動,取負時表示向后移動,取負時表示向后( (上上) )移動;移動;startstart是可選參數(shù),是可選參數(shù),表示移動的起點。表示移動的起點。

51、使用使用MoveMove、MoveFirstMoveFirst、MoveLastMoveLast、MovePreviousMovePrevious、MoveNextMoveNext方法移動記錄指針時,需要方法移動記錄指針時,需要注意注意RecordSetRecordSet對象的光標類型。如對象的光標類型。如“前滾光標前滾光標”限限制了記錄指針只能向前移動。制了記錄指針只能向前移動。例Demo8_1 GetRowsGetRows方法從一個方法從一個RecordSetRecordSet對象讀取一行對象讀取一行或多行記錄到一個數(shù)組中,一般用來讀取大量的數(shù)據(jù)。或多行記錄到一個數(shù)組中,一般用來讀取大量的

52、數(shù)據(jù)。其語法格式為:其語法格式為:Myarray = Rs.GetRows(rowsMyarray = Rs.GetRows(rows, start, fields), start, fields) 其中其中MyarrayMyarray為目標數(shù)組名;為目標數(shù)組名;RsRs為已經(jīng)創(chuàng)建的為已經(jīng)創(chuàng)建的RecordSetRecordSet對象;對象;RowsRows為返回數(shù)組的行數(shù);為返回數(shù)組的行數(shù);startstart為讀為讀取數(shù)據(jù)的起點取數(shù)據(jù)的起點( (書簽書簽) );FieldsFields為為RecordSetRecordSet的字段。的字段。 AddNewAddNew方法用于增加一條空紀錄。

53、調(diào)用該方方法用于增加一條空紀錄。調(diào)用該方法時在法時在RecordSetRecordSet對象中增加一個新行,并將指針移對象中增加一個新行,并將指針移到行首以準備保存新數(shù)據(jù)。該方法一般和到行首以準備保存新數(shù)據(jù)。該方法一般和UpdateUpdate方法方法相搭配共同完成數(shù)據(jù)更新的任務(wù)。不過這種方法很消相搭配共同完成數(shù)據(jù)更新的任務(wù)。不過這種方法很消耗資源、效率最低,最好用耗資源、效率最低,最好用SQLSQL語句來實現(xiàn)數(shù)據(jù)更新。語句來實現(xiàn)數(shù)據(jù)更新。 Delete Delete方法用于刪除當前記錄。當方法用于刪除當前記錄。當RecordSetRecordSet工作在批量方式時,可實現(xiàn)批量刪除。不過該方法

54、非工作在批量方式時,可實現(xiàn)批量刪除。不過該方法非常消耗系統(tǒng)資源,效率非常低。其語法格式為:常消耗系統(tǒng)資源,效率非常低。其語法格式為:Delete valueDelete value 其中其中value = 1value = 1(默認值)表示該方法只刪除當(默認值)表示該方法只刪除當前記錄;前記錄;value = 2value = 2表示該方法刪除所有由表示該方法刪除所有由FilterFilter屬屬性設(shè)定的記錄。性設(shè)定的記錄。例Demo4_1 MFC訪問數(shù)據(jù)庫 1. 連接到數(shù)據(jù)源 2. 使用Recordset對象處理結(jié)果1. 連接到數(shù)據(jù)源 (1) 創(chuàng)建連接字符串 創(chuàng)建Web數(shù)據(jù)應(yīng)用程序的第一步

55、是為ADO提供一種定位并標識數(shù)據(jù)源的方法。這一步通過“連接字符串”實現(xiàn)。連接字符串是一系列用分號分隔的參數(shù),用于定義諸如數(shù)據(jù)源提供程序和數(shù)據(jù)源位置等參數(shù)。ADO使用連接字符串標識OLE DB提供程序并將提供程序指向數(shù)據(jù)源。提供程序是一個組件,用來描述數(shù)據(jù)源并以行集合的形式將信息展示給應(yīng)用程序。 表表9 9列出了幾種通用數(shù)據(jù)源的列出了幾種通用數(shù)據(jù)源的OLE DBOLE DB連接字符串。連接字符串。表表9 9 常用的通用數(shù)據(jù)源的常用的通用數(shù)據(jù)源的OLE DBOLE DB連接字符串連接字符串數(shù)據(jù)源數(shù)據(jù)源OLE DB連接字符串連接字符串Microsoft AccessProvider=Microsof

56、t.Jet.OLEDB.4.0;Source=指向指向.mdb文件文件的物理路徑的物理路徑Microsoft SQL ServerProvider=SQLOLEDB.1;Source=指向服務(wù)器上數(shù)據(jù)庫的路指向服務(wù)器上數(shù)據(jù)庫的路徑徑OracleProvider=MSDAORA.1;Source=指向服務(wù)器上數(shù)據(jù)庫的路指向服務(wù)器上數(shù)據(jù)庫的路徑徑Microsoft Indexing ServiceProvider=MSIDXS.1;Source=指向文件的路徑指向文件的路徑 為了向后兼容性,為了向后兼容性,ODBCODBC的的OLE DBOLE DB提供程序支持提供程序支持ODBCODBC連接字符

57、串語法。表連接字符串語法。表1010列出了常用的列出了常用的ODBCODBC連接字連接字符串。符串。表表10 10 常用的常用的ODBCODBC連接字符串連接字符串數(shù)據(jù)源驅(qū)動程序數(shù)據(jù)源驅(qū)動程序ODBC連接字符串連接字符串Microsoft AccessDriver=Microsoft Access Driver (*.mdb);DBQ=指向指向.mdb文件的物理路徑文件的物理路徑SQL ServerrDriver=SQL Server;SERVER=指向服務(wù)器的路徑指向服務(wù)器的路徑OracleDriver=Microsoft ODBC for Oracle;SERVER=指向服務(wù)指向服務(wù)器的路

58、徑器的路徑Microsoft ExcelDriver=Microsoft Excel Driver (*.xls);DBQ=指向指向.xls文件文件的物理路徑的物理路徑; DriverID =278Microsoft Excel 97Driver=Microsoft Excel Driver (*.xls);DBQ=指向指向.xls文件文件的物理路徑的物理路徑;DriverID=790ParadoxDriver=Microsoft Paradox Driver (*.db);DBQ=指向指向.db文文件的物理路徑件的物理路徑; DriverID=26文本文本Driver=Microsoft T

59、ext Driver (*.txt;*.csv); DefaultDir=指指向向.txt文件的物理路徑文件的物理路徑Microsoft Visual FoxPro(帶有一(帶有一個數(shù)據(jù)庫容器)個數(shù)據(jù)庫容器)Driver=Microsoft Visual FoxPro Driver;SourceType=DBC;SourceDb=指向指向.dbc文件的物理文件的物理路徑路徑Microsoft Visual FoxPro(不帶數(shù)(不帶數(shù)據(jù)庫容器)據(jù)庫容器)Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDb=指向指向.dbf文

60、件的物理文件的物理路徑路徑 (2) (2) 連接到數(shù)據(jù)源連接到數(shù)據(jù)源 ADOADO提供的提供的ConnectionConnection對象,用于建立和管理應(yīng)對象,用于建立和管理應(yīng)用程序與用程序與OLE DBOLE DB兼容數(shù)據(jù)源或兼容數(shù)據(jù)源或ODBCODBC兼容數(shù)據(jù)庫之間的兼容數(shù)據(jù)庫之間的連接。連接。ConnectionConnection對象的屬性和方法可以用來打開和對象的屬性和方法可以用來打開和關(guān)閉數(shù)據(jù)庫連接,并發(fā)布對更新信息的查詢。關(guān)閉數(shù)據(jù)庫連接,并發(fā)布對更新信息的查詢。 要建立數(shù)據(jù)庫連接,首先必須創(chuàng)建要建立數(shù)據(jù)庫連接,首先必須創(chuàng)建ConnectionConnection對對象實例。下述

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論