摘要:MySQL數據庫作為一種網絡數據庫性能十分出色,但其在應用軟件中使用較少。本文將主要探討MySQL提供的兩種數據庫接口 ——(ODBC API和C API)在VC中的應用,並且形成一個類用以封裝C API數據庫接口的功能。
關鍵詞:MySQL;數據庫接口;ODBC API;C API
引言
隨著現代計算機軟硬件及網絡技術的發展,在網上查找資料已成為現在獲取信息的最重要手段之一。眾所周知,所有的網上信息都是儲存在網站數據庫中的,這些信息的查詢、更新等操作的功能則是由數據庫服務器提供的,顯然,數據庫服務器的性能將直接關系到網站的生存。網站搭建中用的最多的數據庫服務器是Oracle和MySQL,前者功能強大,屬於旗艦型數據庫服務器,但前期投入太大;後者功能不斷完善,簡單易用而又不失性能,並且可以免費獲得。因此,許多中小型網站的數據庫服務器選用MySQL,而且,由於MySQL性能出色,一些大型網站也選用了MySQL。
由此可見,MySQL數據庫服務器在網站建設中的表現是十分出色的。但是,正因為這樣,幾乎很少有人將MySQL用於應用軟件的開發中。本文將詳細介紹VC環境中MySQL數據庫服務器不同接口的應用,並最終將產生一個CDatabase類封裝MySQL數據庫接口功能。
數據庫接口實現與應用的計算機環境:硬件,C466、128M、15G;軟件及操作系統,VISUAL C++ 6.0、MySQL 3.23.22-beta for win32、WIN98。
1 MySQL數據庫簡介
MySQL是一個真正的多用戶、多線程SQL數據庫服務器。SQL(結構化查詢語言)是世界上最流行的和標准化的數據庫語言,它使得存儲、更新和存取信息更加容易。MySQL是一個客戶機/服務器結構的實現,它由一個服務器守護程序MySQLd和許多不同的客戶程序以及庫組成的。
MySQL的主要目標是快速、健壯和易用。最初是因為MySQL的創始人需要這樣的一個SQL服務器,它能處理與任何不昂貴硬件平台上提供數據庫的廠家在一個數量級上的大型數據庫,但速度更快,MySQL因此就開發出來了。
它提供C,C++,Java(JDBC),Perl,Python,PHP and TCL 的API接口;多平台支持,包括Solaris,SunOS,BSDI,SGI IRIX,AIX,DEC UNIX,Linux,FreeBSD,SCO OpenServer,NetBSD,OpenBSD,HPUX,Win9x and NT;多樣的數據類型,包括有/無符號1,2,3,4,8字節integers,FLOAT,DOUBLE,CHAR,VARCHAR,TEXT,BLOB,DATE,DATETIME,YEAR,SET,ENUM;非常靈活和安全的權限系統,密碼加密;為Windows提供ODBC接口,可通過Access與之相聯,另有第三方開發商提供多樣的 ODBC驅動程序;在MySQL 3.23中使用新MyISAM最大的表大小可達8百萬 TB(2^63個字節);多種語言支持,但不支持中文。
然而,為了實現快速、健壯和易用的目的,MySQL必須犧牲一部分靈活而強大的功能,如子查詢、存儲過程與觸發器、外鍵、事物處理等。因而,MySQL在某些應用中缺乏靈活性,但這也使它對數據的處理速度較其它數據庫服務器至少快2~3倍。
MySQL自身不支持Windows的圖形界面,因此,所有的數據庫操作及管理功能都只能在MS-DOS方式下完成。首先,必須登陸MySQL服務器,即在提示符MySQLBIN>下輸入MYSQL –H host –U user –PpassWord,提示符改為mysql>時表示登陸成功。然後,選擇所操作的數據庫,即MySQL> USE databasename。接著就可以用SQL語句進行查詢了。如果需要退出數據庫服務器,可執行QUIT命令,這樣就成功退出服務器了。
當然,由於MySQL的知名度日益增加,許多第三方軟件公司推出了MySQL在Windows環境中的具有圖形界面的支持軟件,如EMS公司的EMS MYSQL MANAGER就提供了Windows形式的MySQL數據庫操作功能。
2 利用ODBC API實現MySQL數據庫功能調用
ODBC(Open Database Connectivity)即開放式數據庫互聯,作為Windows開放性結構的一個重要部分已經為很多的Windows程序員所熟悉,ODBC的工作依賴於數據庫制造商提供的驅動程序,使用ODBC API的時候,Windows的ODBC管理程序把數據庫訪問的請求傳遞給正確的驅動程序,驅動程序再使用SQL語句指示DBMS(數據庫管理系統)完成數據庫訪問工作,因此,ODBC的存在為我們開發應用數據庫程序提供了非常強大的能力和靈活性。在Windows下可以對多種數據庫安裝ODBC數據庫,用來連接數據庫並訪問它們的數據。
對於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數據庫進行編程。