Visual Studio 2010 C/C++连接mysql

连接工具包下载地址:http://download.csdn.net/detail/a415058975/8570065


我的环境:VS2010 

系统:Win7 64
============================环境配置步骤=================================
0.选择压缩包,右键》解压到当前文件夹
1.项目右击》属性》VC++目录》库目录》添加压缩包解压文件夹路径
2.项目右击》属性》C/C++》常规》附加包含目录》添加压缩包解压文件夹路径
3.项目右击》属性》链接器》输入》附加依赖项》添加“libmySQL.lib”这一项
4.将libmySQL.dll放入C:\Windows中,否则会报错!


============================异常解决方案==================================


出现“转到COFF期间失败处理方法”请尝试将:
C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7601.17514_none_ba1c770af0b2031b(或者在C:\Windows\winsxs里搜索cvtres.exe然后定位到文件说在路径)里的cvtres.exe文件替换
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin里的cvtres.exe


若有不详则可参照:
http://zhidao.baidu.com/link?url=GGvp_AByR54Bs07WKSu7n82xrhSYph0LMsPqMkjGe6sl7xb3xzO_jtfBu6fom9m7NxAVQk2ZjMcraN6ijgGfmYU-DtRTYmy5MltNFZHAw_y


===========================C/C++测试用例===================================


//C测试用例


#include "stdafx.h"
#include <WinSock2.h>
#include <windows.h>
#include <stdio.h>
#include <mysql.h>
#define MAX_COLUMN_LEN  32  
int main()
{
 /*   MYSQL *conn;
    char *server = "localhost";
    char *user = "root";
    char *password = "1234";//“******”为你设置的密码
    char *database = "pydb";
    conn = mysql_init(NULL);
    if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0))
        printf("连接失败:%sn", mysql_error(conn));
    else
        printf("连接成功!");
    getchar();
    return 0;*/
MYSQL *conn_ptr;
        MYSQL_RES *res;
        MYSQL_ROW row;
 
        char *host = "127.0.0.1";
        char *user = "root";
        char *password = "1234";
        char *db = "pydb";
        unsigned int port = 0;
        char *unix_socket = NULL;
        unsigned long client_flag = 0;
 
        conn_ptr = mysql_init(NULL);
        if(!conn_ptr)
        {
                fprintf(stderr, "init mysql failed\n");
                return(-1);
        }
//连接数据库
        conn_ptr = mysql_real_connect(conn_ptr, host, user, password, db, port, unix_socket, client_flag);
        if(conn_ptr)
        {
//进行字符集设置
if ( mysql_set_character_set( conn_ptr, "gbk" ) ) { 
fprintf ( stderr , "错误, %s/n" , mysql_error( conn_ptr) ) ; 

                printf("Connection success......\n");
        }
        else
        {
                fprintf(stderr, "Connection failed......%d:%s\n", errno, strerror(errno));
        }
 
//执行查询语句
        if( mysql_query(conn_ptr, "select id,name,remark from tb1"))
        {
                fprintf(stderr, "call mysql_query failed......%d:%s\n",errno, strerror(errno));
        }
//保存查询结果集
        res = mysql_use_result(conn_ptr);


        fprintf(stdout, "select id,name,remark from user table in the mysql database:\n");
 
//输出查询结果
        while((row = mysql_fetch_row(res)))
        {
fprintf(stdout, "%s\t%s\t%s\n", row[0], row[1],row[2]);
        }
 
//释放结果集内存,关闭连接
        mysql_free_result(res);
        mysql_close(conn_ptr);
        return 0; 
}


//C++测试用例
#include "stdafx.h"
#include "winsock.h"
#include "mysql.h"
#include <iostream>
using namespace std ;
void _tmain ( int argc , _TCHAR* argv [ ] )
{
     MYSQL * mysql ;     
     mysql = mysql_init ( NULL ) ;     
     char * sql = "select id,name,remark from tb1" ;
//char * sql="select columns from tb1";
     MYSQL_RES * result ;
     MYSQL_ROW row ;
     int r , num ;
     if ( mysql_real_connect ( mysql , "localhost" , "root" , "1234" , "pydb" , 3306 , NULL , 0 ) ) {
         mysql_set_character_set ( mysql , "gbk" ) ;
         if ( ! mysql_query ( mysql , sql ) ) {
             result = mysql_store_result ( mysql ) ;
             if ( result == NULL )
                 return ;
             num = mysql_num_fields ( result ) ;             
             unsigned long * lengths = mysql_fetch_lengths ( result ) ;
             while ( row = mysql_fetch_row ( result ) ) {
                 for ( r = 0 ; r < num ; r ++ ) {
                     cout << row [ r ] << ' ' ;
                 }
                 cout << endl ;
             }
             mysql_free_result ( result ) ;
         }
         mysql_close ( mysql ) ;
 
     }
int a;
cin>>a;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值