使用的是Qt3,MySQL4.1.22
按照置顶贴把环境都已经设置好,能够正确显示中文,并能够在终端中使用mysql插入中文。程序如下:
#include <qapplication.h>
#include <qsqldatabase.h>
#include <qtextcodec.h>
#include "testdb.h"
#include <qcstring.h>
#include <qmessagebox.h>
int main( int argc, char ** argv )
{
QApplication a( argc, argv );
QTextCodec* codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);
QSqlDatabase *defaultDB = QSqlDatabase::addDatabase("QMYSQL3");
defaultDB->setDatabaseName("kevin");
defaultDB->setHostName("localhost");
defaultDB->setUserName("");
defaultDB->setPassword("");
defaultDB->open();
defaultDB->exec("SET NAMES 'GBK'");
QSqlQuery *query = new QSqlQuery(defaultDB);
QCString SQL_string = codec->fromUnicode("张三丰");
QMessageBox::information( 0, "Application name",
SQL_string );
query->exec("INSERT kevin.stu values(15,'"+SQL_string+"','25');");
testDB w;
w.show();
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
return a.exec();
}
问题是能够插入两个或两个以下的汉字,三个及以上就不能够插入。
当SQL_string设成QString类型时,就只能插入一个汉字。。。。
困扰很久了。
希望各位和版主能够帮忙解决一下。谢谢。
[ 此贴被kevin613在2007-05-22 20:52重新编辑 ]