Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
MySQL. Хранимые процедуры. Кириллица! (GerholdtSchnaps) 16/12/2007 - 17:28:10
      Re: MySQL. Хранимые процедуры. Кириллица! (Станислав) 28/04/2010 - 16:53:02

> Original message text:
> From: GerholdtSchnaps - 16/12/2007 - 17:28:10
> Subject:MySQL. Хранимые процедуры. Кириллица!
> -----------------
> Проблема возникла, когда я решил обильно снабдить процедуру комментариями на русском. После компиляции и сохранения весь русский текст превращается в кучу бреда (не `?` как обычно это бывает в случае несоответсвия кодировок), а что-то типа "привет". При этом длина каждого слова увеличивается ровно в два раза, т.е. слово "привет"(6 символов) превращается в "привет"(12 символов).
>
> Кодировка сервера: cp1251
> Кодировка information_shema: utf8
> Кодировка базы mysql: cp1251
> Кодровка базы: cp1251
> (проблема не решается даже если кодировка сервера и всех баз utf8)
>
> Что удалось выяснить:
> 1. В information_shema в таблице routines код процедуры в поле routine_definition(longtext) все сохраняется правильно, т.е. весь русский текст в теле процедуры остается русским текстом.
> 2. В базе mysql в таблице proc в поле body(longblob) для этой процедуры также есть описание тела и именно здесь весь русский текст превращается в "РїСЂРёРІРµС".
>
> Суть проблемы в том, что при редактировании процедуры тело берется именно из mysql>proc>body (CoreLab MyDeveloperStudio, EMS и несколько других редакторов). Если вызвать процедуру из Delphi7(CoreLab MyDAC), то выводится "РїСЂРёРІРµС". QueryBrowser же хватает тело процедуры, судя по всему, из information_shema.
>
> Объясните мне кто-нибудь, что нужно сделать чтобы в mysql>proc>body сохранялась не хня, а нормальный текст (руками можно конечно все переписывать каждый раз после компиляции, но не вариант)
>
>
> Текст процедуры
> DELIMITER $$
> DROP PROCEDURE IF EXISTS `test`.`proc1` $$
> CREATE DEFINER=`root`@`localhost` PROCEDURE `proc1`()
> BEGIN
>
> -- комментарий
> select 'привет';
>
> END $$
> DELIMITER ;
>
>
> Изложил может быть немного сумбурно, но я просто уже и не знаю что делать.
>


From: Станислав - 28/04/2010 - 16:53:02
Subject:MySQL. Хранимые процедуры. Кириллица!
-----------------
В версии 5.1.44-community таких проблем нет, но столкнулся с аналогичной проблемой с колировкой, когда пытался сцепить строку и число (поверил переводной литературе, где говорилось, что мускул конвертирует такие случаи сам). В результате спасла только функция CAST для числа.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37076



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |