Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1245070048
pest
2009-06-15 16:47
2009.09.06
программно вырезать указанный файл в буфер обмена


15-1246869777
b/@.
2009-07-06 12:42
2009.09.06
Простой вопрос по Format


15-1247171426
Юрий
2009-07-10 00:30
2009.09.06
С днем рождения ! 10 июля 2009 пятница


15-1247149761
Дмитрий С
2009-07-09 18:29
2009.09.06
Как по английски "я сам себе сама" ?


2-1246728973
djkondakov
2009-07-04 21:36
2009.09.06
Ссылка из TLabel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский