黃興
(重慶應(yīng)用技術(shù)職業(yè)學(xué)院,重慶,401520)
淺析VC在MySQL數(shù)據(jù)庫(kù)接口中的應(yīng)用
黃興
(重慶應(yīng)用技術(shù)職業(yè)學(xué)院,重慶,401520)
MySQL數(shù)據(jù)庫(kù)作為網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的一種,具有十分優(yōu)良的性能,在相關(guān)軟件的應(yīng)用中并不廣泛。MySQL的功能還在不斷的完善,簡(jiǎn)單的操作、優(yōu)良的性能以及免費(fèi)的獲取已經(jīng)成為眾多企業(yè)首選的數(shù)據(jù)庫(kù)服務(wù)器,本文將介紹VC在MySQL數(shù)據(jù)庫(kù)接口中的具體應(yīng)用,在此基礎(chǔ)上促進(jìn)一個(gè)類(lèi)似于封裝CAPI數(shù)據(jù)庫(kù)接口功能的實(shí)現(xiàn)。
VC;MySQL數(shù)據(jù)庫(kù);接口;應(yīng)用
通常情況下,網(wǎng)上所有的信息都是在相關(guān)網(wǎng)站的數(shù)據(jù)庫(kù)中儲(chǔ)存著,數(shù)據(jù)庫(kù)服務(wù)器在一定程度上可以為人們提供信息的查詢(xún)、更新等眾多操作服務(wù),換言之,數(shù)據(jù)庫(kù)服務(wù)器自身性能的優(yōu)良對(duì)于網(wǎng)站生存狀況的優(yōu)劣起著不可替代的重要作用。現(xiàn)階段,在搭建網(wǎng)站的過(guò)程中最常用的兩種服務(wù)器便是oracle與MySQL。
MySQL數(shù)據(jù)庫(kù)服務(wù)器的擁有眾多的用戶(hù),是一個(gè)線(xiàn)程非常多的SQL數(shù)據(jù)庫(kù)服務(wù)器。MySQL的主要目標(biāo)是快速、健壯和易用。最初是因?yàn)镸ySQL的創(chuàng)始人需要這樣的一個(gè)SQL服務(wù)器,它能處理與任何不昂貴硬件平臺(tái)上提供數(shù)據(jù)庫(kù)的廠(chǎng)家在一個(gè)數(shù)量級(jí)上的大型數(shù)據(jù)庫(kù),但速度更快,MySQL因此就開(kāi)發(fā)出來(lái)了。所謂的SQL即結(jié)構(gòu)化查詢(xún)語(yǔ)言,集結(jié)了全世界上最為流行和標(biāo)準(zhǔn)化的數(shù)據(jù)語(yǔ)言,在很大程度上極大的簡(jiǎn)便了數(shù)據(jù)的存儲(chǔ)、更新以及獲取,使用起來(lái)十分的便利,節(jié)省了人們?cè)讷@取信息時(shí)的諸多不必要的麻煩。MySQL主要是一個(gè)客戶(hù)機(jī)或者服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),其重要的組成部分主要包括mysqld服務(wù)器守護(hù)程序和眾多不同的數(shù)據(jù)端和數(shù)據(jù)庫(kù)。非常靈活和安全的權(quán)限系統(tǒng),密碼加密;為Windows提供ODBC接口,可通過(guò)Access與之相聯(lián),另有第三方開(kāi)發(fā)商提供多樣的 ODBC驅(qū)動(dòng)程序;在MySQL 3.23中使用新MyISAM最大的表大小可達(dá)8百萬(wàn) TB(2^63個(gè)字節(jié));多種語(yǔ)言支持,但不支持中文。然而,為了實(shí)現(xiàn)快速、健壯和易用的目的,MySQL必須犧牲一部分靈活而強(qiáng)大的功能,如子查詢(xún)、存儲(chǔ)過(guò)程與觸發(fā)器、外鍵、事物處理等。因而,MySQL在某些應(yīng)用中缺乏靈活性,但這也使它對(duì)數(shù)據(jù)的處理速度較其它數(shù)據(jù)庫(kù)服務(wù)器至少快2~3倍。
所謂的ODBC也就是我們常說(shuō)的開(kāi)放式數(shù)據(jù)庫(kù)互聯(lián)的一種,是Windows開(kāi)放結(jié)構(gòu)的重要組成部分之一,被不少Windows程序員所熟知?;贠DBC在工作過(guò)程中對(duì)由制造商所制作的驅(qū)動(dòng)程序非常的依賴(lài),故在對(duì)ODBC API進(jìn)行使用的過(guò)程中,管理Windows的ODBC程序需要將訪(fǎng)問(wèn)數(shù)據(jù)的請(qǐng)求準(zhǔn)確無(wú)誤給正確的驅(qū)動(dòng)程序傳遞過(guò)去,在此基礎(chǔ)上驅(qū)動(dòng)程序才能根據(jù)SQL語(yǔ)言的正確指示,在數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS的幫助下實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的重要工作。所以,ODBC的出現(xiàn)在很大程度上為人們進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)提供了極大的便利、強(qiáng)大的功能與靈活性。在Windows下人們可以通過(guò)將ODBC數(shù)據(jù)庫(kù)在安裝在多種數(shù)據(jù)庫(kù)中的方法,以此來(lái)實(shí)現(xiàn)對(duì)各個(gè)數(shù)據(jù)庫(kù)的連接,以及數(shù)據(jù)的訪(fǎng)問(wèn)等。
圖1 MySQL數(shù)據(jù)源設(shè)計(jì)
就MySQL數(shù)據(jù)庫(kù)服務(wù)器而言,相對(duì)應(yīng)的ODBC驅(qū)動(dòng)程序同樣由制造商所提供,通過(guò)在WIN98環(huán)境下的安裝,便可以在多種編程語(yǔ)言的幫助下,通過(guò)ODBC API將ODBC所支持的各種操作應(yīng)用到MySQL數(shù)據(jù)庫(kù)中。由于ODBC在一定程度上將各種數(shù)據(jù)庫(kù)的差異都屏蔽了,故在原先對(duì)其他數(shù)據(jù)庫(kù)進(jìn)行操作的各種程序,同樣也可以在ODBC的幫助下操作MySQL數(shù)據(jù)庫(kù)。
用VC通過(guò)ODBC API編程MySQL數(shù)據(jù)庫(kù),就必須設(shè)置MySQL數(shù)據(jù)源,具體設(shè)置如圖1所示。
基于不同數(shù)據(jù)庫(kù)之間存在著顯著的差異,故由數(shù)據(jù)庫(kù)提供的功能之間差異十分明顯。如此一來(lái),通過(guò)ODBC API擁有數(shù)據(jù)庫(kù)本身全部的功能是一件非常不可能實(shí)現(xiàn)的事情,還會(huì)對(duì)程序控制數(shù)據(jù)庫(kù)的功能造成嚴(yán)重的影響,數(shù)據(jù)庫(kù)的能力也不可能充分有效的發(fā)揮出來(lái),而且接口的統(tǒng)一是在損失效能的基礎(chǔ)上實(shí)現(xiàn)的,以此操作數(shù)據(jù)庫(kù)的時(shí)間極有可能無(wú)限制的延長(zhǎng)。因此,為保證上述問(wèn)題都能夠得到有效的解決,制造MySQL的廠(chǎng)商在不僅提供了ODBC驅(qū)動(dòng)程序,并且用于各種編程環(huán)境下的API也一并提供,如C API。這些API函數(shù)的存在有助于數(shù)據(jù)庫(kù)將自身的功能最大限度的發(fā)揮出來(lái),操作數(shù)據(jù)庫(kù)的時(shí)間在一定程度上也可以獲得顯著的減少,但是其在應(yīng)用過(guò)程中不可避免的存在著一定的缺陷,如會(huì)嚴(yán)重影響驅(qū)動(dòng)程序的通用性。
MySQL所提供的一套C API函數(shù),其組成部分主要包括一組函數(shù)和一組主要與函數(shù)相關(guān)的數(shù)據(jù)類(lèi)型,這些函數(shù)通過(guò)與MySQL服務(wù)器的通信,在一定程度上將非常有助于實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),通過(guò)對(duì)數(shù)據(jù)庫(kù)的直接操作和控制,將有助于促進(jìn)操控效能的極大提高。
數(shù)據(jù)庫(kù)連接句柄(MYSQL)、查詢(xún)返回結(jié)果集(MYSQL_RES)、行集(MYSQL_ROW)、字段信息(MYSQL_FIELD)、字段表的偏移量(MYSQL_FIELD_OFFSET)、自定義的無(wú)符號(hào)整型數(shù)(my_ulonglong)等共同組成了C API數(shù)據(jù)的類(lèi)型;C API提供的函數(shù)包括:mysql_close、mysql_connect、mysql_query、mysql_store_ result以及mysql_init等共同組成了C API所提供的函數(shù),其中最為重要的便是mysql_query,絕大部分的數(shù)據(jù)庫(kù)操作和控制都是依靠它完成的。
本文簡(jiǎn)單的介紹了MySQL數(shù)據(jù)庫(kù),系統(tǒng)化的分析了VC在MySQL數(shù)據(jù)庫(kù)接口中的具體應(yīng)用。
【1】吳麗娜. 淺談MySQL數(shù)據(jù)庫(kù)在自動(dòng)測(cè)試系統(tǒng)中的應(yīng)用[J].科技資訊, 2012(11):23-23.
【2】袁淵, 曾文火. MySQL數(shù)據(jù)庫(kù)接口的VC實(shí)現(xiàn)與應(yīng)用[J]. 江蘇科技大學(xué)學(xué)報(bào)自然科學(xué)版, 2002, 16(5):28-30.
【3】田麗. 淺談MySQL數(shù)據(jù)庫(kù)在自動(dòng)測(cè)試系統(tǒng)中的應(yīng)用[J]. 電子制作, 2012(11):135-135.
Application of VC in MySQL database interface
Huang Xing
(Chongqing applied technology Career Academy,Chongxing,401520)
as a kind of network database, MySQL database has a very good performance, and it is not widely used in the related software. The function of MySQL also constantly improve, simple operation, excellent performance and free access to many enterprises have become the preferred database server, this paper will introduce the concrete application of VC in the MySQL database interface, on the basis of promoting a similar package CAPI database interface functions.
VC; MySQL database; interface; application