對于MySQL數據庫服務器來說,它的制造商同樣提供了相應的ODBC驅動程序,其最新版本為myodbc-2.50.31-win95。在WIN98環境下進行安裝后,就可以利用編程語言通過ODBC API對MySQL數據庫進行各種ODBC所支持的操作。因為ODBC屏蔽了各種數據庫的差異,所以,原來用于對其它數據庫進行操作的程序,通過ODBC同樣能夠對MySQL數據庫進行操作。也就是說,ODBC使程序對數據庫的通用性提高了。
用VC通過ODBC API對MySQL數據庫進行編程,必須要對MySQL數據源進行設置,具體設置如圖1:
圖1 數據源設置信息
通過上圖的設置,接著我們就可以按照一般的ODBC數據庫編程方法,對MySQL數據庫進行編程。
3 利用MySQL自帶的C API函數實現數據庫功能調用
由 于各個數據庫之間的差異,它們所提供的數據庫功能也就各有不同。這樣,通過ODBC API就不可能完全擁有所有的數據庫功能,因而影響了程序對數據庫的控制功能,也就不能充分發揮數據庫的能力。并且這種統一的接口還是以損失效能為前提 的,這就使數據庫操作時間延長。所以,為了解決以上問題,MySQL的制造商在提供ODBC驅動程序的基礎上,還提供了各種編程環境下的API,其中包括 C API。這些API函數很顯然能盡可能地發揮數據庫的能力,并減少數據庫操作的延長時間,但卻使程序的通用性受到嚴重影響。
MySQL提供了一套C API函數,它由一組函數以及一組用于函數的數據類型組成,這些函數與MySQL 服務器進行通信并訪問數據庫,可以直接操控數據庫,因而顯著地提高了操控效能。
C API數據類型包括:MYSQL(數據庫連接句柄)、MYSQL_RES(查詢返回結果集)、MYSQL_ROW(行集)、MYSQL_FIELD(字段 信息)、MYSQL_FIELD_OFFSET(字段表的偏移量)、my_ulonglong(自定義的無符號整型數)等;C API提供的函數包括:mysql_close()、mysql_connect()、mysql_query()、 mysql_store_result()、mysql_init()等,其中mysql_query()最為重要,能完成絕大部分的數據庫操控。
下面將具體討論數據庫操作類CDatabase通過C API的實現以及在VC中的應用。
3.1 CDatabase類的實現
CDatabase類封裝了MySQL數據庫的功能,因此不具備通用性,只能在對MySQL的應用程序中使用。下面將根據C++要求及規范給出CDatabase類的具體結構以及相關簡要介紹:
1 class CDatabase
2 {
3 public:
4 BOOL UnLockTable(); //解鎖
5 BOOL LockTable(char* TableName,char* PRIORITY); //加鎖
文章來源于領測軟件測試網 http://www.kjueaiud.com/