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

VC中用ADO操作MySql数据库中文问题

2010-05-10 12:55 260 查看
      我的程序是用ADO来连接Mysq数据库的,这是原先写好用在MSSQL上的,改了下连接字符串,所以也就没有用MySql C++ API来重新写了。刚开始使用MySql,遇到的问题总是特别的多,现在又遇到一个主要sql字符串中有中文就报错的问题,没有中文一切正常,整整弄了一个上午,在网上也找了很多资料,发现网上很多东西确实是在蒙人,按他们的方法来结果都是一样的,还是错误。

       现在终于把问题搞定了,共享下自己的学习经验吧。

       用ADO连接MySql数据库要想避免中文乱码等问题,首先要保证数据选用的编码格式为GBK(这是许多前辈们建议的,这个字符集支持的比较多),而且在MySql中还可以设置表的,字段的编码格式。

      其次,在ADO连接代码中做必要的设置,具体设置如下:

try
{
//设置ADO使用的字符集
myConn->Execute("set character_set_connection=gbk",NULL,adCmdText);
myConn->Execute("set character_set_results=gbk",NULL,adCmdText);
myConn->Execute("set character_set_client=gbk",NULL,adCmdText);
myConn->Execute(_bstr_t(sqlText),NULL,adCmdText);
}
catch (_com_error e)
{
msg = e.ErrorMessage();
}


两方面都保证了以后问题应该就可以搞定了,不过我想并不一定一定要使用GBK,能保证两边的编码格式一致应该就行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息