亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

五種VC++數據庫開發技術的比較

2019-11-17 05:18:13
字體:
來源:轉載
供稿:網友
從功能簡單的數據庫(如Jet Engine)到復雜的大型數據庫系統(如Oracle),VC++6.0都提供了一些編程接口。本文主要介紹以下五種:

1.ODBC API;

2.MFC ODBC類;

3.MFC DAO類;(數據訪問對象)

4.MFC的OLE/DB;

5.ActiveX數據對象(ADO)。

1.開放數據庫連接(ODBC API)提供了一個通用的編程接口,答應程序與多種不同的數據庫連接。它為Oracle,SQL Server,MS Excel等都提供了驅動程序,使得用戶可以使用SQL語句對數據庫進行直接的底層功能操作。在使用ODBC API時,用戶須引入的頭文件為"sql.h","sqlext.h","sqltypes.h"。用ODBC API創建數據庫應用程序遵循一定的基本步驟:

第一步是分配ODBC環境,使一些內部結構初始化。完成這一步,須分配一個SQLHENV類型的變量在ODBC環境中做句柄使用。

第二步是為將要使用的每一個數據源分配一個連接句柄,由函數SQLALLocHandle()完成。

第三步是使用SQLConnect()把連接句柄與數據庫連接,可以先通過SQLSetConnectAttr()設置連接屬性。

然后就可以進行SQL語句的操作,限于篇幅,相關的函數就不具體介紹了,讀者可以參考相關書籍。

操作完成后,用戶取回相應的結果,就可以取消與數據庫的連接。

最后需要釋放ODBC環境。

ODBC API的特點是功能強大豐富,提供了異步操作,事務處理等高級功能,但相應的編程復雜,工作量大。

2.MFC ODBC類MFC1.5后的版本里引入封裝了ODBC功能的類。通過這些類提供與ODBC的接口,使得用戶可以不須處理ODBC API中的繁雜處理就可以進行數據庫操作。主要的MFC ODBC類如下。

CDatabase類:一個CDatabase對象表示一個到數據源的連接,通過它可以操作數據源。應用程序可使用多個CDatabase對象:構造一個對象并調用OpenEx()成員函數打開一個連接。接著構造CRecordSet對象以操作連接的數據源,并向CDatabase對象傳遞記錄集構造程序指針。完成使用后用Close()成員函數銷毀CDatabase對象。一般情況下并不需要直接使用CDatabase對象,因為CRecordSet對象可以實現大多數的功能。但是在進行事務處理時,CDatabase就起到要害作用。事務(Transaction)指的是將一系列對數據源的更新放在一起,同時提交或一個也不提交,為的是確保多用戶對數據源同時操作時的數據正確性。

CRecordSet類:一個CRecordSet對象代表一個從數據源選擇的一組記錄的集合-記錄集。記錄集有兩種形式:snapshot和dynaset。前者表示數據的靜態視圖,后者表示記錄集與其他用戶對數據庫的更新保持同步。通過CRecordSet對象,用戶可以對數據庫中的記錄進行各種操作。

CRecordView類:CRecordView對象是在空間中顯示數據庫記錄的視圖。這種視圖是一種直接連到一個CRecordSet對象的格式視圖,它從一個對話框模板資源創建,并將CRecordSet對象的字段顯示在對話框模板的控件里。對象利用DDX和RFX機制,使格式上的控件和記錄集的字段之間數據移動自動化,也就是說,用戶甚至不要編寫一行代碼就可以實現簡單的數據庫記錄查看程序。

CDBException類:由Cexception類派生,以三個繼續的成員變量反映對數據庫操作時的異常:

 m_nRetCode:以ODBC返回代碼(SQL_RETURN)的形式表明造成異常的原因。

 m_strError:字符串,描述造成拋出異常的錯誤原因。

 m_strStateNativeOrigin:字符串,用以描述以ODBC錯誤代碼表示的異常錯誤。

MFC數據庫類成員函數都能拋出CDBException類型的異常,所以在代碼對數據庫進行操作后監測異常是正確做法。

MFC ODBC類在實際開發中應用最廣,因為它功能豐富,操作相對簡便。3.MFC DAO(數據訪問對象)編程DAO用于和微軟的access數據庫接口。在數據庫應用程序假如只需與Access數據庫接口時,使用DAO編程較方便。其主要類如下。

CDaoWorkspace:CDaoWorkspace對象可以讓一個用戶治理從登陸到離開期間,指定的密碼保護的數據庫會話全過程。大多數情況下不要多個工作區也不要創建明確的工作區對象。因為在打開數據庫和記錄集對象時,它們可以使用DAO缺省工作區。

CDaoDatabase:代表一個連接,類似上述CDatabase類。

 CDaoRecordSet:用來選擇記錄集并操作,類似上述CRecordSet類。

 CDaoRecordView:類似上述CRecordView類。

 CDaoException:類似上述CDBException類。

 CDaoTableDef:表示基本表或附加表的定義。每個DAO數據庫對象包括一個稱為TableDef的收集,包含所有存儲的DAO表定義對象。CDaoTableDef對象可以用來控制表定義。

 CDaoQueryDef:CDaoQueryDef對象表示了一個查詢定義(querydef)。

 CDaoFieldExchange:支持數據庫類使用的DAO字段交換(DFX)例程。也可處理事務,類似MFC ODBC類。

MFC DAO僅用來支持Access數據庫,應用范圍相對固定。

4.OLE DB
OLE DB在數據提供程序和用戶之間提供了靈活的組件對象模型(COM)接口,這種靈活性有時會使得操作復雜化。OLE DB框架定義了應用的三個基本類。

數據提供程序Data PRovider:擁有自己的數據并以表格形式顯示數據的應用程序。提供OLE DB的行集COM接口,期顯示范圍可以從單一數據表格的簡單提供者知道更復雜的分布式數據庫系統。

使用者Consumers:使用OLE DB接口對存儲在數據提供程序中的數據進行控制的應用程序。用戶應用程序歸為使用類。

服務提供程序Service Provider:是數據提供程序和使用者的組合。服務提供程序沒有自己的數據,但使用

OLE DB使用者接口來訪問存儲在數據提供程序中的數據。然后,服務提供程序通過打開數據提供程序接口使得數據對使用者有效。服務提供程序常用于向應用程序提供高層次服務,比如高級分布式查詢。

OLE DB編程時,用戶使用組件對象開發應用程序。這些組件有:

 枚舉器:用于列出可用的數據源;

 數據源:代表單獨的數據和服務提供程序,用于創建對話;

 對話:用于創建事務和命令;

 事務:用于將多個操作歸并為單一事務處理;

 命令:用于向數據源發送文本命令(SQL),返回行集;

 錯誤:用于獲得錯誤信息。

5.ActiveX數據對象(ADO)是微軟提供的面向對象的接口,與OLE DB類似,但接口更簡單,具有更廣泛的特征數組和更高程度的靈活性。ADO基于COM,提供編程語言可利用的對象,除了面向VC++,還提供面向其他各種開發工具的應用,如VB,VJ等。ADO在服務器應用方面非常有用,非凡是對于動態服務器頁面asp(Active Server Page)。

ADO對象結構類似于OLE DB,但并不依靠對象層次。大多數情況下,用戶只需要創建并只使用需要處理的對象。下面的對象類組成了ADO接口。

 Connection:用于表示與數據庫的連接,以及處理一些命令和事務。

 Command:用于處理傳送給數據源的命令。

 Recordset:用于處理數據的表格集,包括獲取和修改數據。

 Field:用于表示記錄集中的列信息,包括列值和其他信息。

 Parameter:用于對傳送給數據源的命令之間往返傳送數據。

 Property:用與操作在ADO中使用的其他對象的具體屬性。

 Error:用于獲得可能發生的錯誤的具體信息。

在VC++使用ADO需要進行COM操作,具體方法在此就不贅述了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
高清一区二区三区四区五区| 日韩在线观看视频免费| 日韩美女av在线| 夜夜嗨av色综合久久久综合网| 国产精品日韩久久久久| 国产精品久久久久高潮| 日本一本a高清免费不卡| 亚洲精品日韩激情在线电影| 国内精品久久久久久影视8| 7777精品久久久久久| 成人做爰www免费看视频网站| 精品久久久久久中文字幕| 欧美老女人xx| 91在线免费看网站| 自拍偷拍亚洲在线| 日韩av一卡二卡| 精品久久中文字幕| 青青草原一区二区| 在线观看日韩www视频免费| 日韩激情av在线免费观看| 91免费看片网站| 亚洲欧美综合另类中字| 日韩电影免费在线观看中文字幕| 视频一区视频二区国产精品| 国产成人午夜视频网址| 国产精品视频网址| 国产欧美精品xxxx另类| 2018日韩中文字幕| 欧美性xxxxx极品| 久久欧美在线电影| 欧美大片大片在线播放| 成人av.网址在线网站| 亚洲欧洲黄色网| 国产精品一区二区3区| 高清日韩电视剧大全免费播放在线观看| 亚洲国产婷婷香蕉久久久久久| 久久精品国产亚洲精品2020| 精品自在线视频| 搡老女人一区二区三区视频tv| 久久夜色精品亚洲噜噜国产mv| 日韩中文在线中文网在线观看| 亚洲成人久久网| 日韩网站免费观看高清| 疯狂蹂躏欧美一区二区精品| 亚洲男人天堂网站| 91高清免费在线观看| 国产欧美日韩精品专区| 国内精品久久久久| 国产视频精品久久久| 色噜噜狠狠色综合网图区| 欧美大人香蕉在线| 91情侣偷在线精品国产| 国产一区二区三区日韩欧美| 亚洲第一二三四五区| 国产精品久久久久免费a∨大胸| 国产精品看片资源| 国产这里只有精品| 久久视频中文字幕| 国产一区二区在线播放| 日韩黄色在线免费观看| 欧美激情videos| 欧美成人午夜影院| 91人人爽人人爽人人精88v| 亚洲自拍av在线| 亚洲自拍偷拍第一页| 国产亚洲欧美日韩精品| 色99之美女主播在线视频| 国产三级精品网站| 欧美亚洲国产日韩2020| 国产欧美va欧美va香蕉在| 欧美国产日韩中文字幕在线| 日本高清+成人网在线观看| 国产精品日韩在线| 精品久久久免费| 亚洲理论片在线观看| 日韩精品中文字幕视频在线| 亚洲人成电影网站色…| 国产亚洲一区二区精品| 日韩国产高清污视频在线观看| 97久久精品人人澡人人爽缅北| 国产伦精品免费视频| 国产精品视频白浆免费视频| 欧美日韩xxx| 欧美成人精品一区二区三区| 日韩精品在线观看一区二区| 欧美黑人视频一区| 日韩精品一二三四区| 亚洲人精品午夜在线观看| 国产精品老女人视频| 亚洲国产成人精品一区二区| 亚洲国产精彩中文乱码av在线播放| 91在线精品视频| 激情久久av一区av二区av三区| 亚洲丝袜av一区| 精品国产视频在线| 国产成人精品午夜| 亚洲精品女av网站| 亚洲欧美在线一区二区| 色偷偷9999www| 成人h视频在线观看播放| 亚洲小视频在线| 不卡av电影在线观看| 久久九九全国免费精品观看| 在线不卡国产精品| 国产精品视频精品视频| 亚洲国产精品中文| 欧美夫妻性生活xx| 欧美专区国产专区| 欧美在线视频网站| 亚洲成av人乱码色午夜| 日韩精品中文字幕在线观看| 欧美午夜精品在线| 国语自产精品视频在免费| 欧美激情综合色| 国产一区二区三区在线观看视频| 91视频国产一区| 午夜精品99久久免费| 成人亚洲综合色就1024| 91精品久久久久久久久不口人| 欧美在线视频观看| 日韩中文字幕在线精品| 国产精品国产三级国产专播精品人| 欧美日韩国产精品| 成人妇女免费播放久久久| 国产精品丝袜高跟| 久久九九有精品国产23| 日本精品免费观看| 欧美视频免费在线观看| 亚洲精品美女视频| 日韩中文字幕久久| 一区二区亚洲欧洲国产日韩| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲电影免费在线观看| 欧美国产日本在线| 欧美最顶级丰满的aⅴ艳星| 国内精品久久久久影院优| 久久天天躁狠狠躁夜夜躁| 欧美亚洲第一页| 亚洲精品国产精品国自产在线| 国内精品伊人久久| 亚洲一区二区三区777| 欧美一级大片在线观看| 欧美极品少妇xxxxⅹ裸体艺术| 中日韩美女免费视频网址在线观看| 亚洲影院色在线观看免费| 国产91免费观看| 不卡中文字幕av| 亚洲人成在线电影| 国产91色在线| 国产日韩av高清| 91精品国产高清久久久久久久久| 美女av一区二区三区| 欧美久久久精品| 国产91色在线|| 国产精品美女www爽爽爽视频| 国产精品678| 亚洲已满18点击进入在线看片| 日韩精品视频三区| 亚洲国产精品99久久| 国产精品久久久久久中文字| 中文字幕日韩av综合精品| 丝袜美腿精品国产二区| 久久理论片午夜琪琪电影网| 亚洲国产精品嫩草影院久久|