• 4061阅读
  • 6回复

[提问]默认编码utf8,向myasql中写汉字只能写两个??? [复制链接]

上一主题 下一主题
离线tyrantkemp
 
只看楼主 倒序阅读 楼主  发表于: 2013-01-13
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
<DIV mb10?>文本编辑器默认编码为utf-8,于是application之后填上:
QTextCodec *codec = QTextCodec::codecForName("utf8"); <DIV mb10?>QTextCodec::setCodecForTr(codec);<DIV mb10?>QTextCodec::setCodecForCStrings(codec );<DIV mb10?>但是发现网数据库中写数据时两个汉字的名字能写入,三个汉字的就不能写入。怎么解决????
离线realfan

只看该作者 1楼 发表于: 2013-01-13
数据表字段宽度够不够啊
离线tyrantkemp
只看该作者 2楼 发表于: 2013-01-13
回 1楼(realfan) 的帖子
varchar(80)   80了都 就是无法写入
qu.exec(QString("insert into student values(5,'中华人民')"));//无法写入
qu.exec(QString("insert into student values(5,'中华')"));//可以写入

哭了都···
离线realfan

只看该作者 3楼 发表于: 2013-01-13
qu.exec(QString("insert into student values(5,'中华人民')"));
检查一下这句返回的是true还是false
如果失败,打印一下错误描述
离线tyrantkemp
只看该作者 4楼 发表于: 2013-01-13
回 3楼(realfan) 的帖子
怎么打印错误描述?有什么函数可以直接调用吗??
离线tyrantkemp
只看该作者 5楼 发表于: 2013-01-13
引用第3楼realfan于2013-01-13 22:30发表的  :
qu.exec(QString("insert into student values(5,'中华人民')"));
检查一下这句返回的是true还是false
如果失败,打印一下错误描述


终于解决了 换了mingw版的resource······不过还是谢谢你
离线realfan

只看该作者 6楼 发表于: 2013-01-14
回 5楼(tyrantkemp) 的帖子
解决就好。
打印错误用
if(false == qu.exec(QString("insert into student values(5,'中华人民')")))
{
       QSqlError err = qu.lastError ();
       qDebug() m<< err.text();
}
快速回复
限100 字节
 
上一个 下一个