Qt 4.2.1(community)在链接Mysql(Mysql Server 5.1)成功后,插入语句中有某个值为奇数个汉字时无法插入的解决方法
问题描述:
如下面的代码所示,执行到插入语句第三句插入“计算机”时无法插入此句,但前两句插入成功。
QSqlQuery query(db);
// 使数据库支持中文
query.exec("SET NAMES 'utf8'");
// 创建 course 表
query.exec("create table course(id int primary key, name varchar(20), teacher varchar(20))ENGINE=InnoDB DEFAULT CHARSET=utf8;");
query.exec("insert into course values(0,'数学', '刘老师');");
query.exec("insert into course values(1,'英语', '张老师');");
query.exec("insert into course values(2,'计算机','李老师');");
return true;
}
解决方法:
(1)创建course表时使用如下语句
query.exec(“create table course(id int primary key, name varchar(20), teacher varchar(20))ENGINE=InnoDB DEFAULT CHARSET=utf8;”);
使用后可以添加中文,但显示乱码。
(2)在connection.h头文件中添加如下语句
#ifdef _MSC_VER
#pragma execution_character_set(“utf-8”)
#endif
修改后显示正确。
(3)结果显示