|
MySQL.RU - Webboard
Вернуться
MySQL. Хранимые процедуры. Кириллица! (GerholdtSchnaps) 16/12/2007 - 17:28:10
Re: MySQL. Хранимые процедуры. Кириллица! (Станислав) 28/04/2010 - 16:53:02
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 ;
Изложил может быть немного сумбурно, но я просто уже и не знаю что делать.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37076
|
|