ADO是指ActiveX Data Objects,是一種Microsoft對(duì)ODBC的改進(jìn),提供對(duì)各種數(shù)據(jù)源的訪問(wèn)方式。在C語(yǔ)言中,使用ADO連接數(shù)據(jù)庫(kù)非常方便,特別是連接MySQL數(shù)據(jù)庫(kù)。下面介紹一下C語(yǔ)言中使用ADO連接MySQL數(shù)據(jù)庫(kù)的過(guò)程。
#include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <ole2.h> #include <oleauto.h> #include <msado15.h> void main() { CoInitialize(NULL); try { _RecordsetPtr rs("ADODB.Recordset"); //創(chuàng)建RecordSet對(duì)象 rs->Open("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=test;uid=root;pwd=123456;Option=3;", "", adOpenStatic, adLockOptimistic, adCmdText); //打開(kāi)連接 while(!rs->adoEOF) //讀取數(shù)據(jù) { printf("%s\t", (char*)rs->Fields->Item["id"]->Value); printf("%s\n", (char*)rs->Fields->Item["name"]->Value); rs->MoveNext(); } rs->Close(); //關(guān)閉連接 rs.Release(); //釋放資源 } catch(_com_error ce) { printf("Error:%s", (char*)ce.Description()); } CoUninitialize(); }
在代碼中,首先需要引入頭文件,并在函數(shù)中調(diào)用CoInitialize()進(jìn)行初始化,然后創(chuàng)建RecordSet對(duì)象并打開(kāi)連接,其中參數(shù)"Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=test;uid=root;pwd=123456;Option=3;"中需要設(shè)置相應(yīng)的驅(qū)動(dòng)、服務(wù)器、數(shù)據(jù)庫(kù)、用戶和密碼等信息,最后再讀取數(shù)據(jù)并關(guān)閉連接。
在使用ADO連接MySQL數(shù)據(jù)庫(kù)時(shí),需要注意數(shù)據(jù)庫(kù)驅(qū)動(dòng)的版本和配置,以及相應(yīng)的權(quán)限設(shè)置和編碼轉(zhuǎn)換等問(wèn)題。