win7下用VC6.0连接MySQL5.1数据库

  软件环境: 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) 设置Include目录

这里写图片描述
图(2) 设置Lib目录

  1.2)引用libmysql.lib文件
  点击VC6.0工具栏上的【Project】–》Settings –》Link : 在Object/library modules里输入: libmysql.lib,如图(3)所示:
这里写图片描述
图(3) 在Link选项卡里,引用libmysql.lib文件

  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); //关闭数据库连接
}

  效果如下:

这里写图片描述
图(1) 在VC里调用mySQL5.1数据库,输出数据库studata里所有的表格名称

阅读更多
个人分类: C++ MFC C语言
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭