• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            一、 VC 提供的數據庫訪問技術

            ODBC API MFC ODBC DAO OLE DB ADO

            訪問速度:傳統的 ODBC 速度較慢。 OLE DB ADO 都是基于 COM 技術,使用該技術可以直接訪問數據庫的驅動程序,速度大大提高。

            ?

            可擴展性:通過 OLE DB ActiveX 技術,可以利用 VC 提供的各種組件,控件和第三方提供的組建。從而實現應用程序組件化。

            ?

            訪問不同數據源:傳統 ODBC 只能訪問關系數據庫。 VC 中提供 OLD DB 技術可以解決該問題。

            二、 幾種技術概述

            1、? ODBC API

            提供一個通用接口,為 ORACLE SQLSERVER 都提供了驅動程序。用戶可以 SQL 語句對數據庫進行直接的底層功能操作。使用時應包含以下頭文件。 ”SQL.H”,”SQLEXT.H”,”SQLTYPES.H”.

            使用步驟如下:

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

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

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

            第四步:進行 SQL 語句操作。操作完就可以斷開與數據庫的連接。

            第五步:釋放 ODBC 環境。

            ?

            特點:功能強大,提供異步操作,事務處理等高級功能。目前所有關系數據庫都提供了 ODBC 的驅動程序,使用很廣泛。

            缺點:很難訪問對象數據庫和非關系數據庫。

            ?

            2、? MFC ODBC

            ?

            為簡化使用 ODBC API VC 提供了 MFC ODBC 類,封裝了 ODBC API

            主要 MFC ODBC 類如下:

            CDatabase 類:一個 CDatabase 對象表示一個到數據源的連接,通過它可以操作數據源。一般不需要直接使用 CDatabase 對象,因為 CDecordSet 對象可以實現大多數功能,但在進行事務處理時, CDatabase 就起到關鍵作用。

            CRecordSet 類:一個 CRecordSet 對象代表一個從數據源選擇的一組記錄的集合 ----- 記錄集。記錄集有兩種形式: snapshot dynaset 。前者表示是靜態視圖。后者表示記錄集與其它用戶對數據庫的更新保持同步。

            CRecordView 類:是在空間中顯示數據庫記錄的視圖。這種視圖是直接連到一個 CRecordSet 對象的格式視圖。他從一個對話框模版資源創建。并將 CRecordSet 對象的字段顯示在對話框模版的控件里。對象利用 DDX RFX 機制。使格式上的控件和記錄集的字段之間數據移動自動化。

            CDBException 類:由 Cexception 類派生,以 3 個繼承的變量反映對數據庫操作時的異常。

            ?M_nRetCode:? ODBC 返回碼。

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

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

            ?

            3、? MFC DAO

            ?

            MFC DAO 是微軟提供的用于訪問 Microsoft Jet 數據庫文件( * Mdb )的工具。當只需訪問 Access 數據庫時用該技術很方便。

            4、? OLE DB

            ?

            ODBC 技術類似, OLE DB 屬于數據庫訪問技術中的底層接口。

            直接使用 OLEDB 需要大量代碼, VC 中提供了 ATL 模版,

            OLEDB 框架定義了應用的 3 個基本類。

            ?

            數據提供程序 Data Provider 擁有自己的數據并以表格形式顯示數據的應用程序。

            使用者 Consumers :試用 OLEDB 接口對存儲在數據提供程序中對數據進行控制的應用程序。

            服務提供程序 ServiceProvider :是數據提供程序和使用者的組合。

            ?

            使用 OLE DB 編程時,用戶使用組件對象開發程序,這些組件包括:

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

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

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

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

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

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

            5、? ADO

            ?

            ADO 技術是基于 OLE DB 的訪問接口。繼承了 OLEDB 的優點,并對 OLEDB 的接口作了封裝,定義了 ADO 對象,使開發簡化。 ADO 屬于數據庫訪問的高層接口。

            ?

            ADO 在服務器應用方面非常有效,特別是動態服務器頁面( ASP )的支持。

            ?

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

            ?

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

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

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

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

            Parameter ?? 在傳送給數據源的命令之間傳遞數據。

            Property ???? 用于操作在 ADO 中使用的其它對象的詳細屬性。

            Errro ????????? 用于獲取可能發生的詳細錯誤信息。

            Posted on 2006-04-02 22:51 艾凡赫 閱讀(5771) 評論(2)  編輯 收藏 引用 所屬分類: SqlServer

            Feedback

            # re: VC數據庫編程筆記(一)  回復  更多評論   

            2008-05-06 10:01 by xv
            sgb

            # re: VC數據庫編程筆記(一)  回復  更多評論   

            2009-03-11 22:00 by 土豆
            收藏!
            久久久久久噜噜精品免费直播| 日本久久久久亚洲中字幕| 久久亚洲精品成人AV| 久久夜色精品国产欧美乱| 久久精品国产亚洲AV无码麻豆 | 久久精品视频91| 天天做夜夜做久久做狠狠| 久久精品9988| 国产精品天天影视久久综合网| 久久婷婷五月综合国产尤物app| 国产一级持黄大片99久久| 久久久久亚洲av成人无码电影| 日韩精品国产自在久久现线拍| 蜜臀av性久久久久蜜臀aⅴ| 91精品国产91热久久久久福利| 国产亚洲精品自在久久| 久久无码人妻一区二区三区午夜 | 97精品久久天干天天天按摩| 国内精品久久久久久久影视麻豆| 国产精品一区二区久久| 日韩人妻无码一区二区三区久久99| 久久久综合香蕉尹人综合网| 日韩av无码久久精品免费| 思思久久99热只有频精品66| 精品国产乱码久久久久久浪潮| 久久国产色AV免费看| 国内高清久久久久久| 久久久久亚洲AV成人片| 狠狠色丁香久久婷婷综合蜜芽五月| 99久久99久久精品国产片| 精品久久一区二区三区| 久久亚洲AV成人无码电影| 亚洲va久久久噜噜噜久久天堂| 久久久久久亚洲精品成人| 精品一二三区久久aaa片| 久久亚洲精品成人无码网站| 色婷婷狠狠久久综合五月| 久久久久久国产精品美女| 久久久久久A亚洲欧洲AV冫 | 久久人爽人人爽人人片AV | 91亚洲国产成人久久精品网址|