Qt, Interbase и ODBC, работа с БД Interbase |
Здравствуйте, гость ( Вход | Регистрация )
Qt, Interbase и ODBC, работа с БД Interbase |
Litkevich Yuriy |
12.3.2008, 14:30
Сообщение
#11
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
например, писать код в UTF-8, можно в лине и в виндовозе - кодировка универсальная,
А попалась ранее созданая БД с кодировкой Win1251, не переделывать же из-за нее прогу |
|
|
ViGOur |
12.3.2008, 14:35
Сообщение
#12
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Так сделай кодировку настраиваемой.
|
|
|
Litkevich Yuriy |
12.3.2008, 14:42
Сообщение
#13
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
как? и где?
-- у меня пока в голове вертится такая мысль: создать свою модель, а вней делать запрос с указанием кодировки и конвертированием выборки в юникод, но пока не придумал как к этому делу подойти Сообщение отредактировал Litkevich Yuriy - 12.3.2008, 14:45 |
|
|
ViGOur |
12.3.2008, 14:56
Сообщение
#14
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Litkevich Yuriy |
12.3.2008, 15:00
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
не получится, у меня три БД и все с разными кодировками DOS-rus(Paradox), WIN1251 (IntrBase 5.x), UTF-8 (Firebird 2.x), из первых двух данные собираются, + данные через COM-порт с девайсов и в третью кладутся
|
|
|
ViGOur |
12.3.2008, 15:32
Сообщение
#16
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Litkevich Yuriy |
12.3.2008, 16:02
Сообщение
#17
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
блин, все облазил, попробывал так:
думал раз уж в ODBC менеджере я указваю кодировку, то манеджер будет из нее в локальную конвертировать, а локальную я в программе указал. фигушки не работает, тогда не понимаю как вообще это в Qt'ях работает, гдето упоминалось, что поумолчанию при работе с БД тип данных Qstring используется, наверное это мешает. И непойму почему в Qt'ях непредусмотренно задание кодировки БД. (в борланде индивидуально для каждого псевдонима можно кодировку выбрать) Сообщение отредактировал Litkevich Yuriy - 12.3.2008, 16:03 |
|
|
ViGOur |
12.3.2008, 16:21
Сообщение
#18
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
А ты когда устанавливаешь кодек, до чтения строк из БД или после?
Просто нужно устанавливать до чтения в ту кодировку, а которой находится БД. |
|
|
Litkevich Yuriy |
12.3.2008, 16:29
Сообщение
#19
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
приведенные выше строки определены в функции main, буквально так:
на буржуйских форумах люди тоже с этим парятся, тем кому надо кодировку БД отличную от основной, в коде делают селекты руками прекодируют зарание инициализированными кодеками, при вставке и обновлении процесс тот-же только в обратную сторону, а это ЗАД, неужели это единственный способ? Сообщение отредактировал Litkevich Yuriy - 12.3.2008, 16:34 |
|
|
Tonal |
13.3.2008, 8:49
Сообщение
#20
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Два вопроса:
1) Какую кодировку ты указываешь при подключении к базе? Я бы использовал для Firebird UTF8, для InterBase UNICODE_FSS. 2) Почему не использовать штатный драйвер Firebird/InterBase из поставки Qt Open Source? |
|
|
Текстовая версия | Сейчас: 8.12.2024, 6:36 |