2635|1

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求助 查询sqlite数据库并显示的问题 [复制链接]

这是我在网上查到的一种方法:
    CppSQLite3DB db;
    db.open(L"\\storge\\mySqlite.db");
    CppSQLite3Query q = db.execQuery(L"select * from Address_List where NUMBER  ='"+m_edit1+"'");

    CString strTemp;
    while (!q.eof())
  {

    strTemp.Format(_T("%s-%s-%s-%s"),q.fieldValue(0),q.fieldValue(1),q.fieldValue(2),q.fieldValue(3));
    UpdateData();

    m_list.AddString(strTemp);    //显示到listbox控件中
    q.nextRow();
  }
  q.finalize();
  db.close();
这个代码能实现查询并显示到listbox,但是如果q.fieldValue取的内容中有中文的话则显示的是乱码,我一直也没弄好。(有人说是编码的问题,恕我愚钝,弄了很久也没弄好)
所以想请教下,有没有另外的代码或别的方法能够实现我想要的功能?
请指点!谢谢!(用的evc)

最新回复

有人说:Sqlite默认是UTF-8 读出数据后,再用MultiByteToWideChar把它转成Unicode...下面是我弄的 这是我的代码: int size= WideCharToMultiByte(CP_ACP,0,q.fieldValue(3),-1, NULL, 0, NULL,0); char * AsciiBuff =new char[size]; WideCharToMultiByte(CP_ACP,0,q.fieldValue(3),-1,AsciiBuff,size, NULL,0); //q.fieldValue(3)是取出的数据是unsigned short类型,我先转成了char*,下面是再转成Unicode DWORD dwNum = MultiByteToWideChar (CP_UTF8, 0, AsciiBuff, -1, NULL, 0); wchar_t *pwText; pwText = new wchar_t[dwNum]; MultiByteToWideChar (CP_UTF8, 0, AsciiBuff, -1, (LPWSTR)pwText, dwNum); 我试了不行,大家看看代码,请大家指出问题在哪里? 谢谢!!  详情 回复 发表于 2009-10-22 17:20
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有人说:Sqlite默认是UTF-8
读出数据后,再用MultiByteToWideChar把它转成Unicode...下面是我弄的
这是我的代码:
int size= WideCharToMultiByte(CP_ACP,0,q.fieldValue(3),-1, NULL, 0, NULL,0);
char * AsciiBuff =new char[size];
WideCharToMultiByte(CP_ACP,0,q.fieldValue(3),-1,AsciiBuff,size, NULL,0);
//q.fieldValue(3)是取出的数据是unsigned short类型,我先转成了char*,下面是再转成Unicode
DWORD dwNum = MultiByteToWideChar (CP_UTF8, 0, AsciiBuff, -1, NULL, 0);
wchar_t *pwText;
pwText = new wchar_t[dwNum];
MultiByteToWideChar (CP_UTF8, 0, AsciiBuff, -1, (LPWSTR)pwText, dwNum);
我试了不行,大家看看代码,请大家指出问题在哪里?
谢谢!!
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表