Отображение BLOB полей таблиц БД FireBird в QTableView Qt в Windows |
Здравствуйте, гость ( Вход | Регистрация )
Отображение BLOB полей таблиц БД FireBird в QTableView Qt в Windows |
Steklova Olga |
14.3.2012, 13:59
Сообщение
#1
|
Участник Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: 4 |
Здравствуйте У меня в таблице БД есть поле BLOB для хранения текста.
Вопрос 1. Почему у меня некорректно (крокозябрами) отображается русский текст из BLOB в колонке QTableView ? Вопрос 2. Как сделать, чтобы текст в колонке с BLOB не отображался весь в одну строку, а переносился ? Вопрос 3. Что делать с шириной колонки для поля BLOB ? Ограничивать ? Мои предположения: - не в той кодировке пишу данные в БД ? - не везде, где надо, правильно указала кодировку ? - мне необходимо создать делегат, чтобы в каждой ячейке QTableView колонки с BLOB был виджет QTextEdit ? (Сейчас никакого делегата для этого QTableView у меня нет.) Делаю так: в скриптах при создании БД:
В IBExpert при регистрации БД указываю: - Charset = WIN1251 - оставляю не включенным (как по умолчанию и есть) флаг Do NOT perform conversion from/to UTF8 - Font Characters Set = RUSSIAN_CHARSET При этом в IBExpert данные поля BLOB таблицы отображаются корректно, как и при включенном флаге (не совсем понимаю, что делает этот флаг). в main.cpp:
в mainwindow_db.cpp (в главном окне):
в mainwindow_db.h:
|
|
|
Steklova Olga |
15.3.2012, 11:33
Сообщение
#2
|
Участник Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: 4 |
1. Использую FireBird 2.1 в Windows.
2. У меня тоже в IBExpert данные поля BLOB таблицы отображаются корректно. 3. Цитата(Tonal) В Firebird-е при создании блоба указывается его подтип. Ежели подтип блоба TEXT, то его кодировка так же может быть указана явно либо взята дефолтная Я указываю и подтип TEXT, и кодировку блоба. 4. Цитата(Алексей1153) Видимо дело у тебя в кодировке текста скрипта - ты как его выполняешь ? В коде программы ? Для начала, я попробовала вставить в таблицу T_MSG записи с BLOB с помощью скрипта вставки данных. В первом сообщении я привела тексты скриптов создания БД, доменов, таблицы и вставки данных. Тексты скриптов набирала в IBExpert. Еще есть общий скрипт, который я выполнила в IBExpert (Tools | Script Executive):
5. На самом деле, мне надо будет вставлять в таблицу T_MSG записи с BLOB в коде программы с помощью QSqlQuery "INSERT INTO T_MSG ..." Данные для очередной записи таблицы поступают ко мне в виде структуры:
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 9:50 |