Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Qt Mysql и cp1251(второе дыхание)
|
|||
|---|---|---|---|
|
#18+
Ситуация следующая: Первые три записи добавлены в ТБД непосредственно из shell MySQL после команды SET NAMES cp1251. Последняя добавлена из программы написанной на Qt с переданным вБД параметром SET NAMES cp1251. При установке SET NAMES cp1251 в shell MySQL первые три записи отображаются правильно, последняя отображается нечитабельными символами (кодировку менял на все которые только поддерживает MySQL). При просмотре ТБД из программы написанной на Qt ни одна запись не отображается правильно. В заголовке окна выведен текст для того чтобы быть уверенным, что локаль установлена в ср1251. Все вышеописанное запускается под управлением WindowsXP. Код: #include "vwdb.h" #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError> #include <QTextStream> #include <QTranslator> ViewDB::ViewDB(QWidget *parent): QWidget(parent) { setupUi(this); connectionDB(); model = new QSqlTableModel(this); model->setTable("TestTable"); model->setEditStrategy(QSqlTableModel::OnManualSubmit); model->select(); model->setHeaderData(0, Qt::Horizontal, tr("Идентификатор")); model->setHeaderData(1, Qt::Horizontal, tr("Статус")); tvwView->setModel(model); } void ViewDB::connectionDB() { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("TestDB"); db.setUserName("root"); db.setPassword("rootpass"); db.open(); QSqlQuery query; query.exec("SET NAMES cp1251"); query.exec("SELECT* FROM TestTable"); query.next(); codec=QTextCodec::codecForName("CP1251"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCodec::setCodecForTr(codec); query.prepare("INSERT INTO TestTable (id, status) " "VALUES (:id, :status)"); query.bindValue(":id", 40); query.bindValue(":status", "Гость"); query.exec(); setWindowTitle("Текст в ср1251"); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2005, 16:57 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=194&tid=1347307]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
21ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 319ms |

| 0 / 0 |
