999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談數據庫中特殊數據存取方法

2017-10-31 22:32:18魏平

魏平

摘要:數據庫是當今計算機軟件應用和開發最熱門的分支之一,數據庫應用程序是指能夠從數據庫管理系統DBMS獲取數據并進行操作的程序。本文就是研究數據庫中特殊數據的存取,以Visual C++ 6.0和access 2003環境下的數據庫為例,介紹利用ADO實現對圖像和超長數據庫字段的訪問,并在研究生信息管理系統中實現圖像和超長數據字段的存取。

關鍵詞:BLOB;VC++;ADO;ACCESS

中圖分類號:G633.67文獻標識碼:A 文章編號:1992-7711(2017)19-092-1

一、Visual C++ 6.0開發數據庫技術的特點

Visual C++ 6.0提供了多種多樣的數據庫訪問技術——ODBC API、MFC ODBC、DAO、OLEDB、ADO等。這些技術各有自己的特點,但都提供了簡單、靈活、訪問速度快、可擴展性好的開發技術。

1.簡單性。Visual C++ 6.0提供了MFC類庫、ATL模板類以及AppWizard、ClassWizard等一系列的Wizard工具,用于幫助程序員快速的建立應用程序,大大簡化了應用程序的設計過程。使用這些技術,只需編寫很少的代碼或不需要編寫代碼就可以開發一個數據庫應用程序。

2.靈活性。Visual C++ 6.0提供的開發環境可以使程序員根據自己的需要設計應用程序的界面和功能,Visual C++ 6.0還提供了豐富的類庫和方法,程序員可以根據應用程序的特點進行選擇。

3.訪問速度快。為了解決ODBC開發的數據庫應用程序訪問數據庫速度慢的問題,Visual C++ 6.0提供了新的訪問技術——OLEDB和ADO,OLEDB和ADO都是基于COM接口的技術,使用這種技術可以直接對數據庫的驅動程序進行訪問,這大大提高了對數據庫的訪問速度。

4.可擴展性。Visual C++ 6.0提供了OLE技術和ActiveX技術,這種技術可以增強應用程序的能力。使用OLE技術和ActiveX技術可以使程序員利用Visual C++中提供的各種組件、控件以及第三方程序員提供的組件來創建自己的程序,從而實現應用程序的組件化。使用這種技術可以使應用程序具有良好的可擴展性。

5.訪問不同種類數據源。傳統的ODBC技術只能訪問關系型數據庫,在Visual C++中,提供了OLEDB訪問技術,不僅可以訪問關系型數據庫,還可以訪問非關系型數據庫。

二、Visual C++ 6.0 開發數據庫的相關技術

Visual C++ 提供了多種訪問數據庫的技術,ODBC(Open DataBase Connectivity)、MFC ODBC(Microsoft Foundation Classes ODBC)、DAO(Data Access Object)、OLEDB(Object Link and Embedding DataBase)、ADO(ActiveX Data Object). 這些技術各有自己的特點。

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

ADO訪問數據源的特點可概括如下:

第一:易于使用,可以說這是ADO最重要的特點之一;第二:可以訪問多種數據源;第三:訪問數據源效率高;第四:方便地Web應用;第五:技術編程接口豐富。

三、圖片的存取

1.圖片間接存取。間接存取方法并不直接將圖像存入數據庫,而是在數據表中用專門字段存儲圖像文件的路逕和文件名,圖像則以文件形式存放在指定的目錄下,使用時根據數據庫字段提供的信息找到所需圖像文件并進行加載。

2.圖片直接存取。直接存取方法是將圖像數據存儲在數據庫關系表中,這樣不僅可以保證圖像數據的一致性和安全性,還可以提高圖像數據的可用性和可伸縮性。

當前由于大多數據庫系統并不提供對圖像數據存取的支持,直接存取法的實現,須借助第三方開發工具來完成將圖像從數據庫中讀取出來并顯示,或者將圖片保存在數據庫中。下面就以Visual C++ 6.0和access 2003環境下的數據庫為例,介紹利用ADO實現對圖像的直接訪問。

3.從數據庫中讀出圖像。從數據庫讀取圖片時,由于圖片數據還不是很大,可以直接使用Field對象的函數GetChunk()將數據庫中的位圖數據讀出來,以二進制形式保存在內存中,然后將內存中的位圖內容轉換到HBITMAP,這樣就可以直接顯示了。

四、超長數據庫字段的操作方法

在實際的開發過程中常常需要存儲較大的二進制數據對象,如圖像、音頻文件、視頻文件或其他二進制數據,這些數據稱之為二進制大對象BLOB(Binary Large Object),與存取圖片類似,超常數據庫字段的訪問也有間接存取和直接存取兩種方法。

1.SafeArray。在對BLOB進行操作時,文件可能很大,需要一次傳遞很多的數據時,使用SAFEARRAY就會很方便。SAFEARRAY是一種結構化的數據類型,包含了一個由其它數據類型的數據元素組成的數組。之所以稱之為安全的數組是因為它包含了每一維的邊界信息,并限制在邊界內進行數組元素的訪問。

2.將二進制文件寫入到數據庫。由于這個二進制文件可能很大,所以無法將所有內容一次性讀入到內存。我們需要多次讀入,每次可以使用函數CFile::Read()從文件中讀出一個數據包(大小為ChunkSize),然后調用Field對象的AppendChrnk()函數將該包讀入數據庫。所有過程在一個while循環中實現,直到讀完所有的數據。

3.從數據庫讀出二進制對象到文件。同樣,由于這個二進制對象可能很大,無法將所有內容一次性讀入內存中需要多次。每次使用Field對象的GetChunk()函數讀出一個數據包(大小為ChunkSize),然后使用函數Cfile::Write()將該包寫入文件中,所有過程在一個while循環中實現,直到讀完所有的數據。endprint

主站蜘蛛池模板: 免费国产无遮挡又黄又爽| 日本欧美在线观看| 天堂在线视频精品| 一本综合久久| 亚洲成网站| 国产激情无码一区二区免费| h视频在线播放| 伊人久久大香线蕉aⅴ色| 欧美亚洲国产精品第一页| 国产91熟女高潮一区二区| 高清国产va日韩亚洲免费午夜电影| 91免费观看视频| 国产午夜人做人免费视频中文| 人人妻人人澡人人爽欧美一区| 国产精品嫩草影院视频| 国产精品护士| 无码电影在线观看| 国产精品自在在线午夜区app| 91亚洲精品第一| 国产亚洲精品自在久久不卡| 免费日韩在线视频| 天天干天天色综合网| 18禁色诱爆乳网站| 午夜福利亚洲精品| 国产黑丝一区| 日本一区二区三区精品视频| 亚洲综合婷婷激情| 欧美有码在线观看| 白浆视频在线观看| 精品久久高清| 亚洲黄色视频在线观看一区| 狠狠色噜噜狠狠狠狠色综合久| 欧美精品另类| 久久久久亚洲Av片无码观看| yjizz国产在线视频网| a级毛片免费网站| 欧美一级大片在线观看| 91精品在线视频观看| 国产激情第一页| 日韩久草视频| 亚洲中文字幕国产av| 欧美精品在线免费| 亚洲欧洲日产国产无码AV| 国产欧美日韩视频一区二区三区| 亚洲天堂自拍| 国产成人一区在线播放| 免费av一区二区三区在线| 亚洲天堂视频网站| 色135综合网| 久久先锋资源| 67194在线午夜亚洲| 制服丝袜无码每日更新| 日韩国产综合精选| 免费在线国产一区二区三区精品| 欧美福利在线| 久久黄色免费电影| 国产精品人成在线播放| 国产麻豆精品久久一二三| 久久网欧美| 欧美a级在线| 欧美日韩精品一区二区在线线| 国产草草影院18成年视频| 亚洲男女在线| 免费看黄片一区二区三区| 噜噜噜久久| 国产成人a毛片在线| www.亚洲色图.com| 四虎成人免费毛片| 67194亚洲无码| 国产成人精品男人的天堂| 国产日韩欧美视频| 国内精品九九久久久精品| 欧美精品影院| 国产成人艳妇AA视频在线| 中文字幕在线观| 先锋资源久久| 国产成人综合亚洲欧美在| 国产精品亚洲а∨天堂免下载| 亚洲精品动漫| 狂欢视频在线观看不卡| 亚洲精选高清无码| 日韩中文字幕免费在线观看|