MariaDB社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5385|回复: 7
打印 上一主题 下一主题

VC6.0下使用ODBC连接mysql出现乱码

[复制链接]
跳转到指定楼层
1#
发表于 2008-11-18 19:29:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
mysql字符集是GB2312,在数据库中没有任何问题,试过用JSP连接数据库也没有乱码,最近用VC6.0下用ODBC连接MYSQL然后select出来的东西显示出来全都是问号????,英文没有什么问题,使用INSERT插入也没有什么问题。
代码
    CDatabase db;
    db.Open(NULL,FALSE,FALSE,"ODBC;DSN=book;UID=rootWD=123451");
    CRecordset rs(&db);
    rs.Open(CRecordset::forwardOnly,_T("select * from book;"));
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享分享 分享淘帖 顶 踩
8#
发表于 2008-11-19 12:30:43 | 只看该作者


你的问题总结很经典...
7#
 楼主| 发表于 2008-11-19 12:12:29 | 只看该作者
6# liangc
顺便说一句:挺喜欢这个论坛的,也挺喜欢MYSQL的
6#
 楼主| 发表于 2008-11-19 12:11:57 | 只看该作者
5# liangc
找了两天终于解决了,最后还是放弃了使用MFC提供的类,直接使用了mysql提供的API来连接数据库,加上一行语句
mysql_query(&mysql, "SET NAMES 'gb2312'");
具体代码如下:
MYSQL mysql;
    mysql_init(&mysql);
    if(!mysql_real_connect(&mysql,"localhost","root","123451","book",3306,NULL,0))
    {
        MessageBox("数据库连接失败");
        return FALSE;
    }

    mysql_query(&mysql, "SET NAMES 'gb2312'");//加上这句就好了

    char *ch_query;
    ch_query="select * from book";
    if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0)
    {
        MessageBox("数据库表格出错");
    }
    CString str;
    MYSQL_RES *result;
    MYSQL_ROW row;
    if(!(result=mysql_use_result(&mysql)))
    {
        MessageBox("读取数据集失败");
    }
int i=0;
    while(row=mysql_fetch_row(result))
    {
        //做你要做的事情
        i++;
    }
    mysql_free_result(result);//释放结果集
    mysql_close(&mysql);//释放数据库连接
5#
 楼主| 发表于 2008-11-19 11:27:58 | 只看该作者
rs.Open(CRecordset::forwardOnly,_T("set names gb2312;select * from book;"));
kider 发表于 2008-11-18 23:47

加上之后编译没有错误,一执行就报错debug assertion failed
4#
发表于 2008-11-18 23:47:42 | 只看该作者
rs.Open(CRecordset::forwardOnly,_T("set names gb2312;select * from book;"));
3#
 楼主| 发表于 2008-11-18 21:54:43 | 只看该作者
有类似问题,SQL前加set names gb2312;试试

或参考标签:
http://www.mysqlpub.com/tag.php?name=%C2%D2%C2%EB
kider 发表于 2008-11-18 20:09

能不能具体说一下前面指的是哪?那么我的SQL语句因该改成什么?
2#
发表于 2008-11-18 20:09:48 | 只看该作者
有类似问题,SQL前加set names gb2312;试试

或参考标签:
http://www.mysqlpub.com/tag.php?name=%C2%D2%C2%EB
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|MariaDB社区 ( 京ICP备07012489号    |
业务联系: QQ:48474881; 邮箱: 48474881@qq.com; 电话:13911732319
声明:本站部分文章是网友转载,若未经作者同意或署名有误,请联系网站管理员。

GMT+8, 2024-11-10 07:45 , Processed in 0.062287 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表