數據庫是計算機中一種專門管理數據資源的系統,目前幾乎所有軟件都需要與數據庫打交道(包括操作系統,比如Windows上的注冊表其實也是一種數據庫),有些軟件更是以數據庫為核心因此掌握數據庫系統的使用方法以及數據庫系統編程接口的使用方法是程序員非常重要的基本技能之一。所以我花了一定的時間學習了在Windows平臺上使用COM接口的方式操作數據庫。這段時間我會將自己學習過程中掌握的知識和其中的一些坑都發布出來,供個人參考,也方便他人學習
現在常見的DBMS主要有ORACLE、Sybase、Informix、DB2、Sql Server、Access、Visual Foxpro、MySql。由于目前我主要是在學習Windows平臺上的編程技巧,所以這系列的內容將會以Windows平臺為主,所以數據庫選擇了Sql Server,編程接口主要是ADO和OELDB.
Windows平臺常見的數據庫編程組件
目前Windows平臺上主要使用的是ODBC、DAO、RDO、ADO、ADO.NET、OLEDB。
其他的數據庫編程接口由于被微軟棄用或者使用人數較少,等等原因我并沒有關心他們,目前主要學習的是OLEDB和ADO編程。由于ADO是針對OLEDB進行的在封裝的ActiveX控件,掌握了OLEDB,再學習ADO就沒有什么難度了,所以我將重點放在OLEDB上,而對于ADO只會簡單的進行簡單的步驟說明。
OLEDB的基本概念
- 數據提供者和數據消費者:在OLEDB中將接口兩端的軟件分別稱為數據提供者(一般指數據庫這一端,著重與數據的組織存儲)和數據消費者(指應用程序這一端,著重與數據庫數據的展示與使用)。OELDB是一種針對兩頭的編程接口,它為數據提供者和消費者分別準備了一組接口,數據提供者主要實現一些接口,用于將數據庫中的數據輸出到應用程序或者根據應用程序的指令完成數據的操作,而數據消費者主要使用其中提供的編程接口,實現數據的獲取或者更新等操作。(我覺得他們二者之間的關系就像是有一套標準的COM接口,一個負責調用,一個負責實現)從本質上說,OLEDB其實就是一個標準的數據庫與應用系統間的數據標準交換接口,它的好處就是高效,通用和靈活。
- 數據源:一般來講數據源可以理解為數據提供者或者理解為各個DBMS,但是在ADO中,數據源可以是文本文件,excel或者xml文件
MSDAC簡介
MSDAC(Microsoft Data Access Components)微軟數據庫訪問組件,目前MSDAC上主要有ADO、OLEDB、ODBC
在Windows的MSDN中提供了完整的MSDAC幫助文檔,在MSDN中,選擇“目錄”-->"Win32和COM開發"-->"Data Access And Storage"-->"Windows Data Access Components SDK"中。它的下層目錄就是各種組件的詳細文檔,它的整體結構如下:
OLEDB編程的基本思路
OLEDB編程的基本步驟如下:
- 首先創建數據源對象,指定鏈接數據庫的相關屬性,鏈接到數據庫
- 接著創建會話對象
- 根據回話對象創建出Command對象
- 利用Command對象執行SQL語句,并返回結果集對象
- 讀取結果集對象中的數據,并輸出
- 最后關閉所有對象接口,關閉數據庫連接
這些東西在后面的內容中會一一進行詳細的說明,這篇博文就這樣只開個頭。