Форум: "Начинающим";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];
ВнизADO + MySQL кодировка Найти похожие ветки
← →
NIIL (2009-07-04 15:29) [0]Ситуация следующая есть локальный MySQL сервер 5.1.11, имеется база данный и таблица в кодировке utf8, используя TADOConnection, собирая строку подключения связываюсь с пользовательским источником MySQL ODBC коннектором версии 5.1. Получаю имена столбцов - русские буквы отображаются нормально. А вот при внесении записи через TAdoQuery (соединение через тот же AdoConnection) в базу вставляется каша - следовательно проблемы с кодировкой, знаю что D6-D7 не поддерживают utf8, но исп. CodeGear Delphi 11. Выполнял перед вставкой записи SET CHARSET utf8 - не помогло SET NAMES коннектор 5.1 не поддерживает и в интерфейсе коннектора создания подключения строки инициализации и выбора кодироки нет, хотя в 3.5 была. Как быть кто сталкивался.
← →
palva © (2009-07-04 20:21) [1]То что вы написали, недостаточно для того, чтобы определить, где ошибка.
Кроме того, по вашему описанию возникает предположение, что вы вообще плохо представляете, что у вас там происходит.
Чего стоят например такие утверждения
> знаю что D6-D7 не поддерживают utf8
> SET NAMES коннектор 5.1 не поддерживает
А почему вы думаете, что в базу вставляется каша? Вы можете нам сказать какой символ исказился, какой шестнадцатеричный код был у этого символа в SQL-предложении и какой оказался в базе?
Почему вы думаете, что в базе находятся русские буквы в кодировке UTF8?
Я думаю, что если бы вы могли ответить на такие вопросы, то вы сразу же увидели, в чем дело.
← →
Anatoly Podgoretsky © (2009-07-04 20:30) [2]
> Почему вы думаете, что в базе находятся русские буквы в
> кодировке UTF8?
Естественно это весьма сомнительно, что бы для хранения использовалась транспортная кодировка, лишая возможножнсти неточного поиска, сортировки, группировки и прочего.
Но разрабочики БД готовы и не такую лапшу на уши навешать, лишь бы было слово UTF8.
← →
KilkennyCat © (2009-07-04 20:34) [3]Возможно, глупость скажу, а разве sql-база не может содержать помимо данных еще и некий метод их обработки?
← →
palva © (2009-07-04 20:42) [4]Вообще для пользователя не очень важно, в каком виде база хранит тексты. Для него важно с использованием какой кодировки она их сортирует и в какой кодировке возвращает.
А с хранением туго. Я даже не представляю, можно ли определить кодировку хранения, кроме как открыть hex-редактором файл с таблицей.
← →
Anatoly Podgoretsky © (2009-07-04 20:45) [5]Конечно может, но тогда не говорят/не стоит говорить об
> имеется база данный и таблица в кодировке utf8,
Между прочим недавно был аналогичный вопрос про Юникод и про Файрберд, так разработчики утверждали именно подобное, о поддержке Юникода через UTF8 и ставили знак равенства между ними. Ну тут понятно, они стремятся на замену MySQL на платформе Линукс (личное мнение). Для веб сайтов это конечно удобно, не надо делать перекодировку в utf8 на сайте при выборке из базы, но к поддержке Юникод или к рабочей кодировке это относится только опосредтвовано.
Автор видимо плохо разбирается в теме, даже Д6/Д7 приплел.
Для его сведенья даже Д2 нормально поддерживал UTF8.
← →
palva © (2009-07-04 20:50) [6]Совет автору отложить пока делфи-одбц, зайти на сервер консольным клиентом mysql и через него разобраться с кодировками. При этом учитывать, что консоль работает в кодировке DOS, то есть надо еще научиться отправлять на сервер запросы в разных кодировках.
← →
NIIL (2009-07-05 10:17) [7]Спасибо всем. Разобрался. Решилось методом топора, но пока и так нормально. Проблема была в том, что если использовать Parameter в AdoQuery, то кодировка полей с русскими символами сбивалась. Если же формировать SQL.Text без использования параметров, то запись вносится корректно.
> Автор видимо плохо разбирается в теме, даже Д6/Д7 приплел.
> Для его сведенья даже Д2 нормально поддерживал UTF8.
На работе пишу на D6 за неимением другого, так там при получеии записей из таблицы в utf8 вылезает каша и только после Utf8ToAnsi получаю нормальный русский текст. А про не поддержку вычитал на одном из форумов.
← →
Anatoly Podgoretsky © (2009-07-05 10:54) [8]> NIIL (05.07.2009 10:17:07) [7]
> только после Utf8ToAnsi получаю нормальный русский текс
Вот, а говорил, что поддрежки нет.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c