[MySQL]VC++使用MySQL的SDK操作数据库

看到有人说MySQL提供的库函数比ADO要快,不管真假,试一试.

 

要得到库函数,需要完全安装MySQL,然后就会在安装目录下就会发现了.

include:包含需要的头文件.

lib/opt:编译连接时需要,封装库.

 

#include <WinSock2.h>//需要这个头文件,即使我这里用不到
#include "./MySqlSDK/mysql.h"//我自己把这些文件拉出来了
#pragma comment(lib, "./MySqlSDK/libmysql.lib")

MYSQL	*m_pMySQL;//MySQL的连接句柄
MYSQL_RES *pResRet;//返回的结果集
my_ulonglong RecordCount;//共有几条数据
MYSQL_ROW pRow;//某一行的数据
/*
根据帮助文档:
每一个线程在查询MySQL数据库之前都要调用一次mysql_init
mysql_init会初始化一些全局变量
*/
m_pMySQL = mysql_init(NULL);//失败返回NULL,一般不会失败
if (mysql_real_connect(m_pMySQL, ".", "root", "root", "表名", -1, NULL, 0))//失败返回NULL,我这里还是使用的Pipe连接
{
	if (mysql_query(m_pMySQL,"set names /'GBK/'") == ERROR_SUCCESS//设置字符集,否则中文会显示乱码
		&& mysql_query(m_pMySQL, "Select * From SalesMen") == ERROR_SUCCESS)//成功返回0
	{
		if (pResRet = mysql_store_result(m_pMySQL))//失败返回0
		{
			RecordCount =  mysql_num_rows(pResRet);
			while (pRow = mysql_fetch_row(pResRet))//函数会自动指向下一个记录,无记录则为NULL
			{
				::MessageBoxA(NULL, pRow[2], "", NULL);//不知道为什么统一为char*,是byte???
			}
				AfxMessageBox(_T("查询OK"));
				mysql_free_result(pResRet);
		}
	}
}
mysql_close(m_pMySQL);



 

基本书写格式已经明白,不过我还是去用ADO,我可不想重写代码,想想就烦.

 

一定要记得,执行SQL语句"set names /'GBK/'"后才能正确显示中文.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值