Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Unicode+ADO+Mysql [D6, MySQL]


=Far_Away= ©   (2004-08-27 13:28:00) 

Использую в Delphi 6 Unicode ADO (TntADOxxx) компоненты.
Через MyOLEDB провайдер или OLEDB provider for ODBC + MyODBC.

Не удаётся сделать INSERT или SELECT Unicode строки. "Уникодовые" символы превращаются в "обычные".

При этом аналогичные запросы успешно выполняются на PHP.

Посоветуйте как можно работать c Unicode в Delphi+MySQL. Может нужен другой драйвер?

Delphi 6, MySQL 4.1.5, MyODBC 3.51, MyOLEDB 3.0


=Far_Away=   (2004-08-28 00:40:00) [1]

Невероятно! Я нашла решение и у меня всё работает. Итак, тем, кому вдруг придётся мучаться с уникодом:

Использую в Delphi 6 Unicode ADO (TntADOxxx) компоненты.
Использую MyODBC 3.51, OLEDB provider for ODBC.
Использую MySQL 4.1.5, charset нужных полей при создании таблиц указываю utf8.
Чтобы всё работало, в my.ini указала значение переменной character_set_server=utf8. Не забудьте перезегрузить mysql сервер!
Теперь в update/insert запросах надо писать так:

UPDATE table SET field='+utf8Encode(TntEdit1.text)+' WHERE ...

В select запросах ничего особого не надо, но к возвращаемым записям надо обращаться так:

tntEdit1.text:=utf8Decode(TntAdoQuery['field']).

Вот и все мудрости. А как я парилась... Зато моя система теперь полноценно многоязычная. :) Даже приятно...


Наверх

Титульная страница Поиск, карта сайта Написать письмо