软件环境: Win7 64位 + MySQL5.1 + VC6.0
在VC中调用MySQL数据库时,需要用到MySQL5.1安装位置的include目录和lib目录,还有libmysql.lib文件。
一、在VC6.0里,设置数据库的连接环境
1.1) 设置Include目录和Lib目录
点击VC6.0工具栏上的【Tools】–> options –> Directories –>Show directories for:
Include files:
G:\PROGRAM FILES (X86)\MYSQL\MYSQL SERVER 5.1\INCLUDE
Library files:
G:\PROGRAM FILES (X86)\MYSQL\MYSQL SERVER 5.1\LIB\DEBUG
如图(1)、图(2)所示:
1.2)引用libmysql.lib文件
点击VC6.0工具栏上的【Project】–》Settings –》Link : 在Object/library modules里输入: libmysql.lib,如图(3)所示:
1.3)新建一个控制台工程,名称为testMySQL,代码如下:
//test.cpp
#include "winsock.h"
#include "mysql.h"
//#pragma comment(lib,"libmySQL.lib")
#include "stdio.h"
#include <string.h>
struct conn_info //结构体
{
char *host; //主机名
char *user; //用户名
char *password; //密码
char *db; //数据库
};
//定义一个测试连接的函数
MYSQL* mysql_conn_setup(conn_info con)
{
MYSQL *mysql = mysql_init(NULL);
//设置字符集为:gb2312
//mysql_options(mysql,MYSQL_SET_CHARSET_NAME,"gb2312");
//默认的端口是3306
if (!mysql_real_connect(mysql,con.host,con.user,con.password,con.db,3306,NULL,0))
{
printf("Conection error : %s/n", mysql_error(mysql));
exit(1);
}
return mysql;
}
//定义一个执行SQL语句的函数
MYSQL_RES* mysql_conn_sqlQuery(MYSQL *mysql,char *sql_Query)
{
if (mysql_query(mysql,sql_Query))
{
printf("MySQL query error : %s/n", mysql_error(mysql));
exit(1);
}
return mysql_use_result(mysql);
}
//主函数
void main()
{
MYSQL *conn; //定义一个数据库连接对象con
MYSQL_RES *res; //定义一个数据集res
MYSQL_ROW row; //按行显示
char sql_query[100]; //查询语句
memset(sql_query,'\0',100); //以\0结尾的字符串
sprintf(sql_query,"show tables"); //显示数据库里的所有表格
//数据库连接的结构体
struct conn_info info;
//初始化info
info.host="localhost"; //本地数据库
info.user="root"; //登录身份是数据库管理员root
info.password="yes"; //安装数据库时的登录密码
info.db="studata"; //要连接的数据库名称
//执行SQL语句
conn = mysql_conn_setup(info);
res = mysql_conn_sqlQuery(conn,sql_query);
//输出到黑框框控制台
printf("数据库%s里,所有的表如下:\n",info.db);
while ((row = mysql_fetch_row(res)) != NULL) //逐行输出所有的表格Table名称
{
printf("%s\n",row[0]);
}
//关闭
mysql_free_result(res); //关闭数据集
mysql_close(conn); //关闭数据库连接
}
效果如下: