[背景]
和所有人一樣,只是需要用MYSQL去記錄測試的數據。
[剪輯1 用哪種數據庫]
糾結了好久,首選了開源的MYSQL,然後開始用CVI連接,採用ODBC後,連接成功。不過,我的項目需要CVI可以新建數據庫,在找此的過程中,發現MYSQL可以直接用C進行控制,其本身也是C寫的。OK,那麼就來了,我想直接用C控制,不再調用WIN的ODBC。
[過程]
1. 下載MYSQL-5.7.21-WIN32 (因爲我的CVI就是32位的)
https://dev.mysql.com/downloads/file/?id=474495
2. 解壓後,按照MYSQL的安裝方法(參見 http://blog.csdn.net/fzh2712/article/details/79443686 )進行安裝,並測試安裝成功。要修改ROOT的默認密碼,切記!!!(能用命令行讀取表中數據即可)。
就讀取MYSQL數據庫中的USER表數據。
3. 構建CVI的MYSQL調用環境
3.1) 將MYSQL的LIB庫中,libmysql.dll、libmysql.lib拷至windows文件夾system32\、SysWOW64\這兩個下面。
3.2)如果要調用MYSQL,就需要按CVI調用動態鏈接庫的方式,進行調用即可。
貼上測試的代碼:
#include <stdio.h>
//#include "cvi_db.h"
#include "mysql.h"
void printResult(MYSQL *mysql);
void main()
{
MYSQL mysql;
MYSQL_RES * result;
MYSQL_ROW row; //char** 二維數組,存放一條條記錄
mysql_init(&mysql);
mysql_real_connect(&mysql,"localhost","root","123","mysql",3306,NULL,0);
mysql_query(&mysql,"select host,user from user");
result = mysql_store_result(&mysql);
while (row = mysql_fetch_row(result))
{
printf("%s ", row[0]);
printf("%s \n", row[1]);
}
//釋放結果集
mysql_free_result(result);
//printResult(&mysql);
mysql_close(&mysql);
return ;
}