ADO資料庫編程詳解(C++)----初級入門篇

來源:互聯網
上載者:User

 

一、概述

        ADO即Microsoft ActiveXData Object,是Microsoft繼ODBC之後,基於OLE DB技術的一種資料庫操作技術,使您能夠編寫通過 OLE DB提供者對在資料庫伺服器中的資料進行訪問和操作的應用程式。ADO同OLE DB、資料庫之間的關係可以用下圖來表示:

其主要優點是便於使用、高速度、低記憶體支出和佔用磁碟空間較少。ADO支援用於建立基於用戶端/伺服器和 Web的應用程式的主要功能。

二、ADO初步認識

        在此介紹的ADO編程技術都是基於C++的,要熟練掌握如何用ADO操作資料庫,首先對ADO技術得有個總體的瞭解,AD0主要由幾個對象組成:Connection、Command、Paramenter、Recorderset、Fields、Error、Property對象,對資料庫的操作,都是通過這幾個對象來進行的,物件模型的關係圖如下:

 

·      Connection對象

在資料庫應用裡操作資料源都必須通過該對象,這是資料交換的環境。Connection對象代表了同資料來源的一個會話,在客戶/伺服器模型裡,這個會話相當於同伺服器的一次網路連接。不同的資料提供者提供的該對象的集合、方法和屬性不同。

藉助於Connection對象的集合、方法和屬性,可以使用Open和Close方法建立和釋放一個資料來源串連。使用Execute方法可以執行一個資料操作命令,使用BeginTrans、CommitTrans和RollbackTrans方法可以啟動、提交和復原一個處理事務。通過操作the Errors 集合可以擷取和處理錯誤資訊,操作CommandTimeout屬性可以設定串連的溢出時間,操作ConnectionString屬性可以設定串連的字串,操作Mode屬性可以設定串連的模式,操作Provider屬性可以指定OLE DB提供者。

·      Command對象

Command對象是一個對資料來源執行命令的定義,使用該對象可以查詢資料庫並返回一個Recordset對象,可以執行一個批量的資料操作,可以操作資料庫的結構。不同的資料提供者提供的該對象的集合、方法和屬性不同。

藉助於Command對象的集合、方法和屬性,可以使用Parameters集合制定命令的參數,可以使用Execute方法執行一個查詢並將查詢結果返回到一個Recordset對象裡,操作CommandText屬性可以為該對象指定一個命令的文本,操作CommandType屬性可以指定命令的類型,操作Prepared可以得知資料提供者是否準備好命令的執行,操作CommandTimeout屬性可以設定命令執行的溢出時間。

·      Parameter對象

Parameter對象在Command對象中用於指定參數化查詢或者預存程序的參數。大多數資料提供者支援參數化命令,這些命令往往是已經定義好了的,只是在執行過程中調整參數的內容。

藉助於Parameter對象的集合、方法和屬性,可以通過設定Name屬性指定參數的名稱,通過設定Value屬性可以指定參數的值,通過設定Attributes和Direction、Precision、NumericScale、Size與Type屬性可以指定參數的資訊,通過執行AppendChunk方法可以將資料傳遞到參數裡。

·      Recordset對象

如果執行的命令是一個查詢並返回存放在表中的結果集,這些結果集將被儲存在本地的儲存區裡,Recordset對象是執行這種儲存的ADO對象。通過Recordset對象可以操縱來自資料提供者的資料,包括修改和更新行、插入和刪除行。

ADO定義了如表

游標類型

描述

adOpenDynamic

允許添加、修改和刪除記錄,支援所有方式的游標移動,其他使用者的修改可以在聯機以後仍然可見

adOpenKeyset

類似於adOpenDynamic游標,它支援所有類型的游標移動,但是建立串連以後其他使用者對記錄的添加不可見,其他使用者對記錄的刪除和對資料的修改是可見的。支援書籤操作

adOpenStatic

支援各種方式的游標移動,但是建立串連以後其他使用者的行添加、行刪除和資料修改都不可見,支援書籤操作

adOpenForwardOnly

只允許向前存取,而且在建立串連以後,其他使用者的行添加、行刪除和資料修改都不可見,支援書籤操作

ADO定義了如表

鎖定類型

描述

adLockReadOnly

(預設)資料唯讀

adLockPessimistic

鎖定操作的所有行,也稱為消極鎖定

adLockOptimistic

只在調用Update方法時鎖定操作的行,也稱為積極鎖定

adLockBatchOptimistic

在批次更新時使用該鎖定,也稱為積極批量鎖定

ADO定義了如表

游標服務位置

描述

adUseNone

不使用游標服務位置

adUseClient

使用用戶端游標

adUseServer

(預設)使用資料服務端或者驅動提供端游標

藉助於Recordset對象的集合、方法和屬性,可以通過設定CursorType屬性設定記錄集的游標類型,通過設定CursorLocation屬性可以指定游標位置,通過讀取BOF和EOF屬性的值,獲知當前游標在記錄集裡的位置是在最前或者最後,通過執行MoveFirst、

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.