程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用ADO進行數據庫編程

用ADO進行數據庫編程

編輯:關於C語言

 

 

使用ADO

1 概述

ADO是ActiveX數據對象(ActiveX Data Object),這是Microsoft開發數據庫

應用程序的面向對象的新接口。ADO訪問數據庫是通過訪問OLE DB數據提供程

序來進行的,提供了一種對OLE DB數據提供程序的簡單高層訪問接口。

ADO技術簡化了OLE DB的操作,OLE DB的程序中使用了大量的COM接口,而ADO封

裝了這些接口。所以,ADO是一種高層的訪問技術。

ADO技術基於通用對象模型(COM),它提供了多種語言的訪問技術,同時,

由於ADO提供了訪問自動化接口,所以,ADO可以用描述的腳本語言來訪問

VBScript,VCScript等。

 

2 在VC中使用ADO

可以使用VC6提供的ActiveX控件開發應用程序,還可以用ADO對象開發應用程序。

使用ADO對象開發應用程序可以使程序開發者更容易地控制對數據庫的訪問,從

而產生符合用戶需求的數據庫訪問程序。

使用ADO對象開發應用程序也類似其它技術,需產生與數據源的連接,創建記

錄等步驟,但與其它訪問技術不同的是,ADO技術對對象之間的層次和順序關系

要求不是太嚴格。在程序開發過程中,不必選建立連接,然後才能產生記錄

對象等。可以在使用記錄的地方直接使用記錄對象,在創建記錄對象的同時,

程序自動建立了與數據源的連接。這種模型有力的簡化了程序設計,增強了程

序的靈活性。下面講述使用ADO對象進行程序設計的方法。

21 引入ADO庫文件

使用ADO前必須在工程的stdafx.h文件裡用直接引入符號#import引入ADO庫文

件,以使編譯器能正確編譯。代碼如下所示:

#define INITGUID

#import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","EndOfFile")

#include "icrsint.h"

這行語句聲明在工程中使用ADO,但不使用ADO的名字空間,並且為了避免

沖突,將EOF改名為EndOfFile。

22 初始化ADO環境

在使用ADO對象之前必須先初始化COM環境。初始化COM環境可以用以下代碼完成:

::CoInitialize(NULL);

在初始化COM環境後,就可以使用ADO對象了,如果在程序前面沒有添加此代

碼,將會產生COM錯誤。

在使用完ADO對象後,需要用以下的代碼將初始化的對象釋放:

::CoUninitialize();

此函數清除了為ADO對象准備的COM環境。

23 接口簡介

ADO庫包含三個基本接口:

__ConnectionPtr接口、

__CommandPtr接口、

__RecordsetPtr接口,

 

__ConnectionPtr接口返回一個記錄集或一個空指針。通常使用它來創建一個

數據連接或執行一條不返回任何結果的SQL語句,如一個存儲過程。

用__ConnectionPtr接口返回一個記錄集不是一個好的使用方法。通常

同CDatabase一樣,使用它創建一個數據連接,然後使用其它對象執行數

據輸入輸出操作。

 

__CommandPtr接口返回一個記錄集。它提供了一種簡單的方法來執行返回記錄

集的存儲過程和SQL語句。在使用__CommandPtr接口時,可以利用全

局__ConnectionPtr接口,也可以在__CommandPtr接口裡直接使用連接串。如

果只執行一次或幾次數據訪問操作,後者是比較好的選擇。但如果要頻繁訪問

數據庫,並要返回很多記錄集,那麼,應該使用全局__ConnectionPtr接口創

建一個數據連接,然後使用__CommandPtr接口執行存儲過程和SQL語句。

 

__RecordsetPtr是一個記錄集對象。與以上兩種對象相比,它對記錄集提供了

更多的控制功能,如記錄鎖定,游標控制等。同__CommandPtr接口一樣,它不

一定要使用一個已經創建的數據連接,可以用一個連接串代替連接指針賦

給__RecordsetPtr的connection成員變量,讓它自己創建數據連接。如果要使

用多個記錄集,最好的方法是同Command對象一樣使用已經創建了數據連接的全

局—ConnectionPtr接口,然後使用__Recordse7tPtr執行存儲過程和SQL語句。

24 使用ADO訪問數據庫

__ConnectionPtr是一個連接接口,首先創建一個__ConnectionPtr接口實例,

接著指向並打開一個ODBC數據源或OLE DB數據提供者(Provider)。以下代碼分

別創建一個基於DSN和非DSN的數據連接。

 

  //使用__ConnectionPtr(基於DSN)

  __ConnectionPtr MyDb;

  MyDb.CreateInstance(__uuidof(Connection));

  MyDb-〉Open("DSN=samp;UID=admin;PWD=admin","","",-1);

  //使用—ConnectionPtr (基於非DSN)

  __ConnectionPtr MyDb;

  MyDb.CreateInstance(__uuidof(Connection));

MyDb.Open("Provider=SQLOLEDB;SERVER=server;DATABASE=samp;UID=admin;PWD=admin","","",-1);

 

//使用__RecordsetPtr執行SQL語句

  __RecordsetPtr MySet;

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved