Russian Qt Forum

Qt => Базы данных => Тема начата: Sergey B. от Январь 13, 2005, 10:39



Название: MySQL encoding
Отправлено: Sergey B. от Январь 13, 2005, 10:39
Проблема в следующем...
Подключаюсь к базе, в таблице английские буквы видны нормально, при вводе русских появляются знаки ???????.
Кодировка базы utf8
конфигурация:
WinXP SP2
MySQL 4.1.7-nt
Qt-3.3.3
VS2003

Код:

#include <qapplication.h>
#include <qsqldatabase.h>
#include "form1.h"

int main( int argc, char ** argv )
{
    QApplication a( argc, argv );
   QSqlDatabase *mybase=QSqlDatabase::addDatabase("QMYSQL3");
       if ( !mybase ) {
        qWarning( "Failed to connect to driver" );
      return FALSE;}
   mybase->setDatabaseName("mybase");
   mybase->setUserName("root");
   mybase->setPassword("")    ;
   mybase->setHostName("192.168.0.2");
   if ( ! mybase->open() ) {
        qWarning( "Failed to open database: " +
                  mybase->lastError().driverText() );
        qWarning( mybase->lastError().databaseText() );
        return FALSE;
    }
   QSqlQuery query ("INSERT INTO mytable (name,family)" "VALUES ('Ivanov','Ivan')");
   Form1 w;
    w.show();
    a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
    return a.exec();
}

P.S.
QTextCodec::setCodecForTr не помагает


Название: MySQL encoding
Отправлено: Admin от Январь 13, 2005, 11:00
Цитировать
Подключаюсь к базе, в таблице английские буквы видны нормально, при вводе русских появляются знаки ???????.


Посмотри внешним клиентом, типа mysql-navigator.

В базе руские или нет?


Название: MySQL encoding
Отправлено: Sergey B. от Январь 13, 2005, 12:14
Цитата: "Admin"
Цитировать
Подключаюсь к базе, в таблице английские буквы видны нормально, при вводе русских появляются знаки ???????.


Посмотри внешним клиентом, типа mysql-navigator.

В базе руские или нет?

Смотрел mysqlcc...
В базе вопросики ????


Название: MySQL encoding
Отправлено: Admin от Январь 13, 2005, 12:40
значится кладешь не правильно

а пробовал конвертировать

QCString QString::local8Bit () const

может это поможет?


Название: MySQL encoding
Отправлено: Sergey B. от Январь 13, 2005, 13:56
Цитата: "Admin"
значится кладешь не правильно

а пробовал конвертировать

QCString QString::local8Bit () const

может это поможет?



Спасло только:
QTextCodec *codec=QTextCodec::codecForName("utf8");
QTextCodec::setCodecForCStrings(codec);

Тогда всё получается!


Название: MySQL encoding
Отправлено: Admin от Январь 13, 2005, 15:27
ну тоже выход :)