crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> QODBC MS Access(*.accdb) кодировка, Вопросики в черных квадратиках
haiflive
  опции профиля:
сообщение 17.6.2011, 15:46
Сообщение #11


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 8.7.2010
Пользователь №: 1868

Спасибо сказали: 1 раз(а)




Репутация:   0  


Угу, уже подумывал конвертировать базу в mdb, и подключиться через другую строку коннекта..
Меня больше интересует вопрос, не будет ли проблем с кодировкой, когда я подключусь в *.xsl (MS Excel), драйвер-то тот же..

Очень признателен за ответ.. жду пояснения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DenisKh001
  опции профиля:
сообщение 17.6.2011, 17:05
Сообщение #12


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 16.6.2011
Пользователь №: 2752

Спасибо сказали: 0 раз(а)




Репутация:   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();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
haiflive
  опции профиля:
сообщение 18.6.2011, 11:22
Сообщение #13


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 8.7.2010
Пользователь №: 1868

Спасибо сказали: 1 раз(а)




Репутация:   0  


У меня ОС х32 забыл сказать..

Открыл одну таблицу, у которой название на латинице.. и там всё нормально 0о все русские буквы в полном порядке..
Подправил кодек для строк
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

и нормально подключился к таблице с русским названием..

и полный код:
#include <QtGui/QApplication>
#include <QTableView>
#include <QSqlTableModel>
#include <QTextCodec>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
     db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};FIL={MS Access};DBQ=D:/Workflow/Base/workbase.accdb");
     db.open();

     QSqlTableModel model;
     model.setTable("Товары");
     model.select();
     QTableView *view1 = new QTableView;
     view1->setModel(&model);
     view1->show();

    return a.exec();
}


Почему-то db.tables() возвращает битые названия таблиц.. что же воспримем это как баг..

Чудеса.. Это именно тот случай, кода думаешь во вред себе..
Всем спасибо за ответы.

Сообщение отредактировал haiflive - 18.6.2011, 11:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 24.6.2011, 8:01
Сообщение #14


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


Под дампом QString я имел ввиду содержание ее, т.е. массив unsigned char*. По этому массиву возможно понять какая кодировка.
Еще момент, хотя, я думаю, он не особо тут уместен - может быть несовместимый порядок байтов. Например у тебя прога работает с Big Endian, а драйвер возвращает тебе Little Endian. Такой подводный камень типичный для сетевых приложений, но чем мелкософт не шутит?)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Max Payne
  опции профиля:
сообщение 16.2.2012, 16:00
Сообщение #15


Студент
*

Группа: Участник
Сообщений: 24
Регистрация: 16.2.2012
Пользователь №: 3223

Спасибо сказали: 0 раз(а)




Репутация:   0  


У меня такая же проблема , только список таблиц возвращается знаками вопросов, помогите кто решил проблему. Я подключаюсь к *.mdb созданой в Aссess 2003.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.6.2024, 20:54