• <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數據庫編程筆記(一)

            一、 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 2009-05-21 21:18 wrh 閱讀(396) 評論(0)  編輯 收藏 引用

            導航

            <2008年9月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            欧美亚洲国产精品久久蜜芽| 精品久久久久久无码中文野结衣| 久久精品国产日本波多野结衣| 国产精品99久久久久久宅男小说| 久久成人国产精品| 欧美日韩中文字幕久久久不卡| 99久久无色码中文字幕人妻| 久久精品九九亚洲精品| 欧美伊人久久大香线蕉综合69| 99久久精品国产一区二区| 亚洲国产精品久久| 欧洲精品久久久av无码电影| 国内精品久久久久久不卡影院| 久久久久免费看成人影片| 久久久久亚洲AV综合波多野结衣| 亚洲AV无码久久| 国内精品伊人久久久影院| 久久精品国产第一区二区| 久久99精品久久久久婷婷| 久久午夜无码鲁丝片秋霞| 久久精品国产一区二区三区| 99久久er这里只有精品18| 日韩乱码人妻无码中文字幕久久| 亚洲伊人久久成综合人影院| 久久国产精品免费一区二区三区| 久久大香香蕉国产| 色诱久久久久综合网ywww| 久久久久亚洲精品日久生情| 亚洲国产日韩欧美久久| 污污内射久久一区二区欧美日韩 | 精品久久久久久成人AV| 2021国内久久精品| 免费一级做a爰片久久毛片潮| 国产国产成人久久精品| 国内精品久久久久久久亚洲| 国内精品久久久久久麻豆| 激情五月综合综合久久69| 久久露脸国产精品| 亚洲精品无码专区久久同性男 | 亚洲国产精品无码久久久不卡 | 久久精品国产亚洲精品|