2012-07-13 64 views
0

有什麼解決方案可以在C++中簡單連接MySQL數據庫? 我發現dev.mysql.com的MySQL Connector很難集成。將MySQL與C++集成的簡單解決方案?

預期的感謝!

+0

使用一個很好的ODBC庫... – 2012-07-13 07:05:21

+1

你怎麼定義爲一個「簡單」的連接? – RedX 2012-07-13 07:05:45

+0

簡單:連接 - >查詢 - >關閉,而我的不好,我也應該提到簡單的「解決方案」之前。看起來像其他人同意集成mySQL連接器是一個痛苦http://r3dux.org/2010/11/how-to-use-mysql-connectorc-to-connect-to-a-mysql-database-in-windows/。 ..我的意思是,爲什麼MySQL安裝手冊沒有提到boost庫是必需的? – 2012-07-13 07:07:47

回答

2

它非常簡單與MySQL從C/C++應用程序

你需要包含的mysql.h頭文件

三個基本的API連接和執行查詢

mysql_connect()函數進行溝通

的mysql_query()

mysql_close()

使用mysql庫(libMysql)鏈接

0

您可以使用支持庫來嘗試ODBC路徑。

一年前我用OTL接口SqlServer,發現它很高效。現在,我已經試過接口MySQL中,沒有任何問題至今:

#include <otlv4.h> 
#include <iostream> 
using namespace std; 

int otl_x_sql_main(int argc, char **argv) 
{ 
    otl_connect db; // connect object 
    otl_connect::otl_initialize(); // initialize ODBC environment 
    try { 
     db.rlogon("DRIVER=mysql;DB=...;UID=...;PWD=..."); // connect to ODBC 

     // parametrized SELECT 
     otl_stream i(50, "SELECT product_id,model FROM product WHERE product_id >= :f<int> AND product_id < :ff<int>", db); 

     int product_id; 
     char model[100]; 

     i << 1000 << 2000; // assigning product_id range 

     // SELECT automatically executes when all input variables are assigned 
     while (!i.eof()) { 
      i >> product_id >> model; 
      cout << "product_id=" << product_id << ", model=" << model << endl; 
     } 
    } 
    catch(otl_exception& p) {  // intercept OTL exceptions 
     cerr << p.msg << endl;  // print out error message 
     cerr << p.stm_text << endl; // print out SQL that caused the error 
     cerr << p.sqlstate << endl; // print out SQLSTATE message 
     cerr << p.var_info << endl; // print out the variable that caused the error 
    } 

    return 0; 
}