VC++通过ADO连接mysql中文显示问题
2012-05-28 11:21
381 查看
VC++通过ADO连接mysql_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
CString strServer = "Localhost"; //本机服务器名称
CString strDBFile = "xscj"; //数据库名
CString strConn; //连接字符串
strConn.Format(_T("Driver=MySQL ODBC 3.51 Driver;;charset=gbk;Server=%s;Database=%s;
UID=root;PWD=root"),strServer,strDBFile);
pConn->Open ((_bstr_t)strConn,"","",-1);
pRst=pConn->Execute("select * from xs",NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("XM"));
pRst->MoveNext ();
}
首先要保证数据选用的编码格式为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();
}
_RecordsetPtr pRst(__uuidof(Recordset));
CString strServer = "Localhost"; //本机服务器名称
CString strDBFile = "xscj"; //数据库名
CString strConn; //连接字符串
strConn.Format(_T("Driver=MySQL ODBC 3.51 Driver;;charset=gbk;Server=%s;Database=%s;
UID=root;PWD=root"),strServer,strDBFile);
pConn->Open ((_bstr_t)strConn,"","",-1);
pRst=pConn->Execute("select * from xs",NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("XM"));
pRst->MoveNext ();
}
首先要保证数据选用的编码格式为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();
}
相关文章推荐
- 解决小问题--VC2008通过ADO连接ACCESS (转)
- 各种乱码问题:mysql 中文显示乱码, C#数据流写到Txt文档显示乱码问题,C# 连接mysql乱码 mysql Front 乱码,navicat for mysql乱码
- VC中ADO连接数据库,如何使用Datagrid显示的问题
- PHP连接MySQL查询结果中文显示乱码问题
- linux环境通过ssh连接控制台显示中文乱码问题
- VC使用ADO连接oracle中文字符问题:涉及oracle字符集、连接字串。
- 解决小问题--VC2008通过ADO连接ACCESS
- QT连接mysql中文显示问题
- linux环境通过ssh连接控制台显示中文乱码问题
- Flex asSql库在连接MySql时显示中文字符串为乱码的问题
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 连接mysql server 5.0 数据库的乱码问题,utf8编码,中文正确显示
- 解决MySQL客户端输出窗口显示中文乱码问题的办法
- otl通过odbc连接mysql中文乱码测试
- jdbc连接mysql中文乱码问题
- 解决不能向mysql插入中文或乱码显示问题
- c++ 连接mysql,中文输入的问题
- PreparedStatement在MySQL下中文显示为??的问题
- ubuntu安装lamp&&mysql中修改配置文件显示中文&&强大的vim配置&&c++连接Mysql
- 关于在MySQL 、 VC、 JSP 中使用UTF-8解决中文生僻字乱码的问题