VC++通过ADO连接mysql中文显示问题

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();  

}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值