lazarus + MySQL - вывод данных

Модератор: Модераторы

Re: lazarus + MySQL - вывод данных

Сообщение Vadim » 10.10.2009 06:11:21

masters писал(а):а то делаю поле 20 символов, а туда всего 10 русских влазит

Это потому что Lazarus при любом раскладе работает с кодировкой UTF-8, а русские символы в UTF-8 имеют размер 2 байта. Следовательно все русские строки, которые Вы посылаете из программы написанной в Lazarus имеют размер тоже 2 байта.
Вам нужно задать кодировку, в которой MySQL будет принимать строковые данные от клиента и тогда MySQL будет их автоматически перекодировать в кодировку, которая задана при создании базы.
Я, сразу после подключения к БД, делаю так:
Код: Выделить всё
  ZConnection.ExecuteDirect('SET character_set_client = "UTF8"');
  ZConnection.ExecuteDirect('SET character_set_connection = "UTF8"');
  ZConnection.ExecuteDirect('SET character_set_results = "UTF8"');
  ZConnection.ExecuteDirect('SET collation_connection = "UTF8_bin"');

Т.е. устанавливаю значение стандартных переменных MySQL для текущего сеанса работы с БД в UTF-8.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: lazarus + MySQL - вывод данных

Сообщение masters » 10.10.2009 10:19:40

Vadim писал(а):Вам нужно задать кодировку, в которой MySQL будет принимать строковые данные от клиента и тогда MySQL будет их автоматически перекодировать в кодировку, которая задана при создании базы.


А базу в какой кодировке создавать? cp1251_general_ci или UTF8 ?
masters
новенький
 
Сообщения: 20
Зарегистрирован: 19.08.2009 13:50:59

Re: lazarus + MySQL - вывод данных

Сообщение Vadim » 10.10.2009 10:25:59

masters писал(а):А базу в какой кодировке создавать?

В какой хотите.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Пред.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru