[背景]
和所有人一样,只是需要用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.youkuaiyun.com/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 ;
}