您的位置:首页 > 数据库 > MySQL

win7 64位系统使用VS2013编写MySQL代码

2017-03-23 13:00 417 查看
环境配置:

1. 下载安装MYSQL sever from https://dev.mysql.com/downloads/mysql/

2. 安装,步骤百度,一路Excute, next,设置root账户密码

3. 新建VS项目工程,vs连接数据库其实就是将MySQL数据库.h头文件接口、lib链接文件和dll执行文件加入到项目中。

 在项目配置中C/C++的Additional Include Directories中添加MYSQL安装后的include目录。如:C:\Program Files\MySQL\MySQL Connector.C 6.1\include;

 在Linder->General->Additional Library Directories 中添加lib库所在目录,如C:\Program Files\MySQL\MySQL Connector.C 6.1\lib;%(AdditionalLibraryDirectories)

 在Linker->Input->Additional Dependencies中添加libsql.lib

7.新建Source文件,添加如下代码

#include <iostream>
#include <mysql.h>

using namespace std;

void main()
{
const char* user = "root";
const char* password = "haojinming";
const char* host = "localhost";
const char* db = "test_schema";
unsigned int port = 3306;
MYSQL myCout;
MYSQL_RES *result = nullptr;
MYSQL_ROW sqlRow;
MYSQL_FIELD *fd = nullptr;

char column[32][32];
int res = 0;
mysql_init(&myCout);

if (mysql_real_connect(&myCout, host, user, password, db, port, nullptr, 0))
{
cout << "SQL is successfully connected." << endl;
//mysql_query(&myCout, "SET NAMES GBK");
res = mysql_query(&myCout, "select * from test_table where ID=2");
if (!res)
{
result = mysql_store_result(&myCout);
if (result)
{
int i = 0, j = 0;
cout << "Number of reslut:" << (unsigned long)mysql_num_rows(result) << endl;
for (i = 0; fd = mysql_fetch_field(result); i++)
{
strcpy(column[i], fd->name);
}
j = mysql_num_fields(result);
for (i = 0; i < j; i++)
{
cout << column[i] << " ";
}
cout << endl;
while (sqlRow = mysql_fetch_row(result))
{
for (i = 0; i < j; i++)
{
strcpy(column[i + j], sqlRow[i]);
cout << sqlRow[i] << " ";
}
}
cout << endl;
}
}
else
{
cout << "Query sql failed." << endl;
}
}
else
{
cout << "SQL failed to connect." << endl;
}

if (result != nullptr)
{
mysql_free_result(result);
}
mysql_close(&myCout);
}

链接会出错,

>MySql_Connect.obj
: error LNK2019: 无法解析的外部符号 _mysql_close@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_free_result@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_num_fields@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_fetch_row@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_store_result@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_error@4,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_real_query@12,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_select_db@8,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_real_connect@32,该符号在函数 _main 中被引用 
1>MySql_Connect.obj : error LNK2019: 无法解析的外部符号 _mysql_init@4,该符号在函数 _main 中被引用 

解决方案:

.项目->属性->配置管理器

活动解决方案平台,下拉选新建,出现一个新的对号框,在键入选择新平台中选择X64

最后重新编译,这次完全证明的我想法是对的。编译成功。

最后分析一下解决这个问题关键,其实这个问题很简单。搞明白dll和lib的作用,或许都能分析出这个问题了原因了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐