![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
haiflive |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 37 Регистрация: 8.7.2010 Пользователь №: 1868 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте. у меня возникла проблема с кодировками..
Подключился к базе MS Access, через ODBC драйвер, делаю запрос QSqlDatabase::tables(), и вывожу результат в QTextEdit и получаю кучу вопросиков в чёрных ромбиках.. Латиница отабражается нормально, а вот русские буквы(русские буквы в названиях таблиц и их полей не я накуралесил) отображаются тёмными ромбиками внутри которых вопросики, обычно это происходит когда cp-1251 отображают как utf-8, странно токуда вылезло cp-1251?. ODBC кажется кодирует в ASCII кодировке.. Вобщем, варианты типа этих не работаю QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));//UTF-8//ASCII, ANSI// CP-1251 FromUTF8 , toLocal8bit не помогают, уже весь иннет перерыл.. заставить базу в mySQL как бы просто, один sql SET NAMES cp1251, ну или посмотреть кодировки SHOW GLOBAL VARIABLES LIKE 'char%'; а в odbc почему-то выполнение этих запросов query.exec(); возвращает false; Как можно в приложении изменить кодировку, изменить кодировку соединения с базой?. ну или на крайняк изменить кодировку DSN драйвера?. OC windows 7, Qt SDK_1_1_1, QT4.7.3, mingw. ммм.. где здесь правка собственных постов?. извеняюсь за ошибки. |
|
|
![]() |
DenisKh001 |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 16.6.2011 Пользователь №: 2752 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
У меня лежит вот здесь: C:\Windows\SysWOW64\odbcad32.exe. Проверил, подключился к *.accdb и все работает.
#include <QApplication> #include <QTableView> #include <QSqlTableModel> int main(int argc, char *argv[]) { QApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName("TestMDB"); db.open(); QSqlTableModel model; model.setTable("town"); model.select(); QTableView *view1 = new QTableView; view1->setModel(&model); view1->show(); return a.exec(); } |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 21.6.2024, 23:25 |