欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ADO客戶(hù)數據庫編程
ADO客戶(hù)數據庫編程
ADO
,即ActiveX Data Objects,是一種特殊的OLE DB客戶(hù)程序,它允許訪(fǎng)問(wèn)程序在Visual C++、Visual Basic、VBscript、Java等編程語(yǔ)言中訪(fǎng)問(wèn)。雖然ADO的巨大優(yōu)勢在于Visual BasicVBscript的使用,但是在某些特殊的情況下,ADOVisual C++中的訪(fǎng)問(wèn)是無(wú)法避免的。正是由于ADO本身是一種OLE DB客戶(hù)程序,所以在數據庫應用程序里使用ADO變得更加容易。ADOOLE DB、數據庫應用以及數據源之間的關(guān)系可以用圖9-1表示:

9-1  ADOOLE DB、數據庫應用以及數據源之間的關(guān)系

本章詳細介紹ADO的基本原理和數據庫訪(fǎng)問(wèn)技術(shù)。

9.1  ADO原理

9.1.1  ADO與OLE DB

ADO是微軟最新的對象層次上的數據操作技術(shù),它為操作OLE DB數據源提供了一套高層次自動(dòng)化接口。盡管OLE DB 已經(jīng)是一個(gè)強大的數據操作接口,然而大多數數據庫應用開(kāi)發(fā)者并不需要OLE DB提供的操作數據的底層控制接口。大多數開(kāi)發(fā)者對于管理內存資源、手工聚合組件以及其它的底層操作接口并不是很感興趣。另外,開(kāi)發(fā)者經(jīng)常使用高層的、不支持指針和C++函數調用規范的開(kāi)發(fā)語(yǔ)言,OLE DB為這種需要提供了方便。

從功能上來(lái)說(shuō),ADO也是一種OLE DB客戶(hù)程序,不過(guò)它不依賴(lài)于特定的OLE DB服務(wù)器,相反,它支持所有的OLE DB服務(wù)提供者。通過(guò)這些OLE DB服務(wù)提供者,ADO支持客戶(hù)/服務(wù)器模式和基于Web的數據庫應用。

ADO支持客戶(hù)/服務(wù)器模式和基于Web的數據操作,ADO尤其支持通過(guò)客戶(hù)/服務(wù)器模式或者基于Web模式訪(fǎng)問(wèn)微軟的SQL Server數據庫服務(wù)器。

9.1.2  ADO的優(yōu)越性

對于數據庫編程人員來(lái)說(shuō),ADO具有如下優(yōu)越性:

·       便于使用。

·       支持多種編程語(yǔ)言,包括Visual Basic、Java、C++、VBScriptJavaScript。

·       支持任何的OLE DB服務(wù)器,ADO可以操作任何的OLE DB數據源。

·       不損失任何OLE DB的功能,ADO支持C++編程人員操作底層的OLE DB接口。

·       可擴展性,ADO能夠通過(guò)提供者屬性集合動(dòng)態(tài)地表示指定的數據提供者,還能夠支持COM的擴展數據類(lèi)型。

9.1.3  ADO對象模型

ADO對象模型包括以下關(guān)鍵對象:

·       Connection對象

在數據庫應用里操作數據源都必須通過(guò)該對象,這是數據交換的環(huán)境。Connection對象代表了同數據源的一個(gè)會(huì )話(huà),在客戶(hù)/服務(wù)器模型里,這個(gè)會(huì )話(huà)相當于同服務(wù)器的一次網(wǎng)絡(luò )連接。不同的數據提供者提供的該對象的集合、方法和屬性不同。

借助于Connection對象的集合、方法和屬性,可以使用OpenClose方法建立和釋放一個(gè)數據源連接。使用Execute方法可以執行一個(gè)數據操作命令,使用BeginTrans、CommitTransRollbackTrans方法可以啟動(dòng)、提交和回滾一個(gè)處理事務(wù)。通過(guò)操作the Errors 集合可以獲取和處理錯誤信息,操作CommandTimeout屬性可以設置連接的溢出時(shí)間,操作ConnectionString屬性可以設置連接的字符串,操作Mode屬性可以設置連接的模式,操作Provider屬性可以指定OLE DB提供者。

·       Command對象

Command對象是一個(gè)對數據源執行命令的定義,使用該對象可以查詢(xún)數據庫并返回一個(gè)Recordset對象,可以執行一個(gè)批量的數據操作,可以操作數據庫的結構。不同的數據提供者提供的該對象的集合、方法和屬性不同。

借助于Command對象的集合、方法和屬性,可以使用Parameters集合制定命令的參數,可以使用Execute方法執行一個(gè)查詢(xún)并將查詢(xún)結果返回到一個(gè)Recordset對象里,操作CommandText屬性可以為該對象指定一個(gè)命令的文本,操作CommandType屬性可以指定命令的類(lèi)型,操作Prepared可以得知數據提供者是否準備好命令的執行,操作CommandTimeout屬性可以設置命令執行的溢出時(shí)間。

·       Parameter對象

Parameter對象在Command對象中用于指定參數化查詢(xún)或者存儲過(guò)程的參數。大多數數據提供者支持參數化命令,這些命令往往是已經(jīng)定義好了的,只是在執行過(guò)程中調整參數的內容。

借助于Parameter對象的集合、方法和屬性,可以通過(guò)設置Name屬性指定參數的名稱(chēng),通過(guò)設置Value屬性可以指定參數的值,通過(guò)設置AttributesDirection、Precision、NumericScale、SizeType 屬性可以指定參數的信息,通過(guò)執行AppendChunk方法可以將數據傳遞到參數里。


·       Recordset對象

如果執行的命令是一個(gè)查詢(xún)并返回存放在表中的結果集,這些結果集將被保存在本地的存儲區里,Recordset對象是執行這種存儲的ADO對象。通過(guò)Recordset對象可以操縱來(lái)自數據提供者的數據,包括修改和更新行、插入和刪除行。

ADO定義了如表9-1所示的光標類(lèi)型。

9-1  ADO的光標類(lèi)型

光標類(lèi)型
描述
adOpenDynamic
允許添加、修改和刪除記錄,支持所有方式的光標移動(dòng),其他用戶(hù)的修改可以在聯(lián)機以后仍然可見(jiàn)
adOpenKeyset
類(lèi)似于adOpenDynamic光標,它支持所有類(lèi)型的光標移動(dòng),但是建立連接以后其他用戶(hù)對記錄的添加不可見(jiàn),其他用戶(hù)對記錄的刪除和對數據的修改是可見(jiàn)的。支持書(shū)簽操作
adOpenStatic
支持各種方式的光標移動(dòng),但是建立連接以后其他用戶(hù)的行添加、行刪除和數據修改都不可見(jiàn),支持書(shū)簽操作
adOpenForwardOnly
只允許向前存取,而且在建立連接以后,其他用戶(hù)的行添加、行刪除和數據修改都不可見(jiàn),支持書(shū)簽操作

ADO定義了如表9-2所示的鎖定類(lèi)型。

9-2  ADO的鎖定類(lèi)型

鎖定類(lèi)型
描述
adLockReadOnly
(缺?。祿蛔x
adLockPessimistic
鎖定操作的所有行,也稱(chēng)為消極鎖定
adLockOptimistic
只在調用Update方法時(shí)鎖定操作的行,也稱(chēng)為積極鎖定
adLockBatchOptimistic
在批量更新時(shí)使用該鎖定,也稱(chēng)為積極批量鎖定

ADO定義了如表9-3所示的光標服務(wù)位置。

9-3  ADO的鎖定類(lèi)型

光標服務(wù)位置
描述
adUseNone
不使用光標服務(wù)位置
adUseClient
使用客戶(hù)端光標
adUseServer
(缺?。┦褂脭祿?wù)端或者驅動(dòng)提供端光標

借助于Recordset對象的集合、方法和屬性,可以通過(guò)設置CursorType屬性設置記錄集的光標類(lèi)型,通過(guò)設置CursorLocation屬性可以指定光標位置,通過(guò)讀取BOF EOF屬性的值,獲知當前光標在記錄集里的位置是在最前或者最后,通過(guò)執行MoveFirst、MoveLast、MoveNextMovePrevious 方法移動(dòng)記錄集里的光標,通過(guò)執行Update方法可以更新數據修改,通過(guò)執行AddNew方法可以執行行插入操作,通過(guò)執行Delete方法可以刪除行。

·       Field對象

Recordset對象的一個(gè)行由一個(gè)或者多個(gè)Fields對象組成,如果把一個(gè)Recordset對象看成一個(gè)二維網(wǎng)格表,那么Fields對象就是這些列。這些列里保存了列的名稱(chēng)、數據類(lèi)型和值,這些值是來(lái)自數據源的真正數據。為了修改數據源里的數據,必須首先修改Recordset對象各個(gè)行里Field對象里的值,最后Recordset對象將這些修改提交到數據源。

借助于Field對象的集合、方法和屬性,可以通過(guò)讀取Name屬性,獲知列的名稱(chēng)。通過(guò)操作Value屬性可以改變列的值,通過(guò)讀取Type、PrecisionNumericScale 屬性,可獲知列的數據類(lèi)型、精度和小數位的個(gè)數,通過(guò)執行AppendChunk GetChunk 方法可以操作列的值。

·       Error對象

Error對象包含了ADO數據操作時(shí)發(fā)生錯誤的詳細描述,ADO的任何對象都可以產(chǎn)生一個(gè)或者多個(gè)數據提供者錯誤,當錯誤發(fā)生時(shí),這些錯誤對象被添加到Connection 對象的Errors集合里。當另外一個(gè)ADO對象產(chǎn)生一個(gè)錯誤時(shí),Errors集合里的Error對象被清除,新的Error對象將被添加到Errors集合里。

借助于Errosr對象的集合、方法和屬性,可以通過(guò)讀取NumberDescription屬性,獲得ADO錯誤號碼和對錯誤的描述,通過(guò)讀取Source屬性得知錯誤發(fā)生的源。

·       Property對象

Property對象代表了一個(gè)由提供者定義的ADO對象的動(dòng)態(tài)特征。ADO對象有兩種類(lèi)型的Property對象:內置的和動(dòng)態(tài)的。內置的Property對象是指那些在ADO里實(shí)現的在對象創(chuàng )建時(shí)立即可見(jiàn)的屬性,可以通過(guò)域作用符直接操作這些屬性。動(dòng)態(tài)的Property對象是指由數據提供者定義的底層的屬性,這些屬性出現在ADO對象的Properties集合里,例如,如果一個(gè)Recordset 對象支持事務(wù)和更新,這些屬性將作為Property對象出現在Recordset對象的Properties集合里。動(dòng)態(tài)屬性必須通過(guò)集合進(jìn)行引用,比如使用下面的語(yǔ)法:

        MyObject.Properties(0)   

或者

        MyObject.Properties("Name")

不能刪除任何類(lèi)型的屬性對象。借助于Property對象的集合、方法和屬性,可以通過(guò)讀取Name屬性獲得屬性的名稱(chēng),通過(guò)讀取Type屬性獲取屬性的數據類(lèi)型,通過(guò)讀取Value屬性獲取屬性的值,

ADO對象模型如圖9-2所示。

 

9-2  ADO對象模型

每個(gè)Connection,Command,Recordset和Field對象都有一個(gè)Properties集合,如圖

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ADO對象
JavaScript操作數據庫
ADO數據庫連接七大對象講解,讓VB開(kāi)發(fā)更清晰!
無(wú)題
在Visual C++中使用ADO
RecordSet 游標的使用
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久