Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.06;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1246653405
Knight
2009-07-04 00:36
2009.09.06
Downloader-ы...


15-1244637305
nach
2009-06-10 16:35
2009.09.06
C++ to Delphi


2-1246600084
Zheksonz
2009-07-03 09:48
2009.09.06
Помогите разобраться в преобразовании


15-1246625032
Nil
2009-07-03 16:43
2009.09.06
Есть кто-нибдуь кто знает Delphi, С и кому интересен доп зработок


15-1247211415
AlexDan
2009-07-10 11:36
2009.09.06
FrontPage глючит..