本文用的是MySQL 5.5,它內建了MySQL Connector C++ 1.1.0。
這個connector不好使,我用的win8 pro x64系統,和visual studio 2012,至少在這個環境下不好使,報0xc015002錯誤。
請下載最新版的,本文用的是MySQL Connector C++ 1.1.1(x86)。編譯環境和Connector必須是一樣的架構,同是x86,或者同是x64,本文同是x86。
不得不說MySQL Connector不給力,缺庫缺檔案要自己補上。
缺boost庫 http://www.boost.org/
缺檔案sqlstring.h http://download.csdn.net/download/wangxvfeng101/4056020
然後在VS中把include目錄中添加boost目錄,和Connector C++中的include目錄
附加庫目錄加上Connector C++中的lib/opt目錄
在工程屬性連結器的輸入中添加mysqlcppconn.lib和mysqlcppconn-static.lib
把sqlstring.h,以及connector lib/opt目錄下的mysqlcppconn.dll,MSVCP90.dll,MSVCR90.dll複製到工程目錄下(sqlstring和標頭檔放在一起,dll和產生的debug版的exe放在一起,dll也可以放在system32下)
Connector中的config.h和vc中的標頭檔stdint.h的int8_t有重定義error C2371,所以去config.h中注釋掉int8_t的內容
最後用如下代碼就可以跑起
代碼是哪抄來的忘記了,MySQL connector的文檔中也有這些代碼,介紹了幾個例子和API的使用
http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-getting-started-examples.html
#include "mysql_connection.h"#include "mysql_driver.h"#include <cppconn/driver.h> #include <cppconn/exception.h> #include <cppconn/resultset.h> #include <cppconn/statement.h> #include <cppconn/prepared_statement.h> using namespace sql;using namespace std;#pragma comment(lib,"mysqlcppconn.lib") #pragma comment(lib,"mysqlcppconn-static.lib")void RunConnectMySQL() { sql::mysql::MySQL_Driver *driver = NULL; sql::Connection *con = NULL; sql::Statement *state = NULL; sql::ResultSet *result = NULL; try { driver = sql::mysql::get_mysql_driver_instance(); con = driver->connect("tcp://127.0.0.1:3306","root","123456");//串連資料庫 state = con->createStatement(); state->execute("use test"); result = state->executeQuery("select * from a"); } catch(sql::SQLException & ex)//如果上面有錯就捕獲這個異常 { cout<<ex.what()<<endl; return; } while(result->next()) { cout<<"name: "<<result->getInt("id")<<endl;//取出欄位為name的所有值 } state->close(); } void main() { RunConnectMySQL(); getchar(); ; }