Qt and mysql

Автор: ip82 Дата: 10.10.2003 14:14 Господа!
Беру QDataTable, подключаюсь к мускулу через его драйвер - и в таблице вместо русского лабуда какая-то...
Тогда брал QSqlQuery и конвертил результат запроса QString::fromLocal8Bit() - тогда все в порядке.
Но не хочется руками все делать.
Может ктонить знает как решить проблему с QDataTable?
Re: Qt and mysql 17.10.2003 09:29olkv Наследуешь класс от QDataTable, переопределяешь функцию paintField
типа так

class TDataTable : public QDataTable
{
Q_OBJECT
public:
TDataTable(...):QDataTable(...){}
protected:
virtual void CustomTable::paintField( QPainter * p, const
QSqlField* field,const QRect & cr, bool b);

};
void TDataTable::paintField( QPainter * p, const QSqlField* field,
const QRect & cr, bool b)
{
if(field ){
QString nm (field->name());
if(nm=="name" || nm=="family";-){ //только строки
static QString s;
s = field->value().toString();
recodeToKoi8r(s); //void recodeToKoi8r(QString&;-);
p->drawText( 2,2, cr.width()-4, cr.height()-4, fieldAlignment( field ), s );
}
else
QDataTable::paintField( p, field, cr, b) ;
}
}

Это перекодируем для показа, но если ты еще и редактируешь, то нужно
перекодировать в кодировку базы перед записью - вешаешь на сигналы

void beforeInsert ( QSqlRecord * buf )
void beforeUpdate ( QSqlRecord * buf )

свои функции перекодировки обратно в кодировку базы, иначе записывать
будет в текущей кодировке приложения.
RSS-материал