Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi XE + ADO + кириллица в MySQL, Всё что вы хотели знать об этом. 
:(
    Опции темы
malor
  Дата 20.9.2011, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Таблицу создавал так:
Код
CREATE TABLE category
(
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    category TINYINT UNSIGNED NOT NULL,
    item VARCHAR(100) CHARACTER SET UTF8 NOT NULL 
);

INSERT INTO category (category, item) VALUES 
(1, 'До 12'),
(1, 'После 12');

user posted image

Конфиг my.ini:
Цитата
[client]
port=3306

[mysql]
#default-character-set=cp1251
default-character-set=utf8

[mysqld]
#skip-character-set-client-handshake

port=3306
basedir="C:/MySQL55/"
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"
#character-set-server=cp1251
character-set-server=utf8
character-set-client-handshake
character-set-filesystem = latin1

default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=18M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=35M
key_buffer_size=25M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K


#skip-innodb
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=47M
innodb_log_file_size=24M
innodb_thread_concurrency=8


Connection string:
Provider=MSDASQL.1;Password="";Persist Security Info=True;User ID=root;Data Source=nodeutf8;Mode=ReadWrite;Extended Properties="DSN=nodeutf8;UID=root;PWD=;";Initial Catalog=nodeutf8

Как получить нормальный текст в комбобоксе?

P.S. Кое-что из интернета:
mySQL и Кодировка unicode 
Проблема с кодировкой в MySQL через dbExpress, DBGrid показывает кракозябры
How to set charset for MySQL in RODBC?
Delphi 7 Personal, MySQL using libmysql.dll + UTF8
MySQL и Delphi. Проблема с русским текстом. 
Чтение данных (MySQL - utf8)
Параметры и mysql-connector-odbc-5.1.5 
MySQL5, Delphi7, utf8, В проге показываются каракули
ADO + MySQL кодировка 
ADO и кодировка русская?
"ADODB.Connection" проблема с кодировкой 
База в UTF8, коннект через ADO - получаю знаки вопроса где настроить кодировку в ADO
DBGrid+MySQL+кодировка
Как передать в MySQL русские буквы
Кодировка

Это сообщение отредактировал(а) malor - 20.9.2011, 11:12

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  ComboUTF8Project.zip 97,44 Kb
PM MAIL   Вверх
Antimol
Дата 20.9.2011, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 28.7.2007
Где: Украина, Киев

Репутация: 4
Всего: 4



Мне помогла статья: Проблемы с кодировкой в MySQL
--------------------
Лучшее спасибо это "+" к репутации.   Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи....
PM MAIL WWW ICQ   Вверх
malor
  Дата 20.9.2011, 17:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Цитата(Antimol @  20.9.2011,  15:29 Найти цитируемый пост)
Мне помогла статья: Проблемы с кодировкой в MySQL 

user posted image
Вы предлагаете из кода Delphi XE послать SET NAMES ''cp1251''?


Это сообщение отредактировал(а) malor - 20.9.2011, 17:30

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  SetNames2.png 18,86 Kb
PM MAIL   Вверх
Keeper89
Дата 20.9.2011, 17:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Мне кажется или все-таки нужно сделать конверт UTF8->UTF16 (обычный string)?


--------------------
PM MAIL WWW   Вверх
malor
  Дата 25.9.2011, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Цитата(Keeper89 @  20.9.2011,  17:56 Найти цитируемый пост)
все-таки нужно сделать конверт UTF8->UTF16 (обычный string)? 

user posted image

Переменная s объявлена:
s: String;

P.S. Какой-то DCC Warning был, наподобие:
"W1058 Implicit string cast with potential data loss from 'string' to 'RawByteString' "

Это сообщение отредактировал(а) malor - 25.9.2011, 17:32
PM MAIL   Вверх
Antimol
Дата 26.9.2011, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 28.7.2007
Где: Украина, Киев

Репутация: 4
Всего: 4



Цитата(malor @ 20.9.2011,  17:29)
...
Вы предлагаете из кода Delphi XE послать SET NAMES ''cp1251''?

Да именно так. Я следующее (Использовал компоненты ZEOS):
Код

.....
Подключаемся к БД
.....
with TZQuery.Create(nil) do // создаем Query для выполнения запроса
begin
  try
    Connection = ZConnection; //Указываем Connection для Query
    SQL.Text:='SET NAMES "cp1251"' //Явно указываем в какой кодировке работаем.
    ExecSQL; //Выполняем запрос
  finally 
    Free  //Уничтожаем Query  
  end;
end;


Общий принцип такой, может есть ошибки - пишите, исправлю. Подсмотрю дома что писал точно и выложу если кому интересно.
--------------------
Лучшее спасибо это "+" к репутации.   Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи....
PM MAIL WWW ICQ   Вверх
Akella
Дата 26.9.2011, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Antimol @  26.9.2011,  09:06 Найти цитируемый пост)
Да именно так. 


Я уже представляю, как тексты перекодируются из UTF8 в UTF16 и обратно через промежуточную кодировку CP1251 smile 
А пофиг, главное шоб работало smile 
PM MAIL   Вверх
malor
  Дата 10.10.2011, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Akella>>из UTF8 в UTF16 и обратно через промежуточную кодировку CP1251

Про CP1251 в 1-м посте не упоминалось.

В настройках Connector/ODBC есть параметры под названиями: "Character Set""Initial Statement".

user posted image

Может они здесь играют важную роль?

О себе:
mysql-connector-odbc-5.1.9-win32.msi
mysql-5.5.16-win32.msi


Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  MySQL_CharacterSet_ODBC.png 67,35 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0881 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.