使用的是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重新编辑 ]