
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.12.2014, 14:45:43
|
|||
|---|---|---|---|
|
|||
Ошибка при выполнении ХП на сервере |
|||
|
#18+
Есть хранимая процедура с параметрами на сервере. При заполнении одного из параметров русскими символами (который, естественно, ссылается на столбец с заполненными русскими символами, другими словами, делает выборку) исполнение процедуры выдает ошибку: Incorrect string value: '\xD1\x8B....' for column at row 1 и название параметра. При условии заполнения латинскими буквами - всё ок. Тип запрашиваемого столбца VarChar (255). Кодировка БД по умолчанию UTF(8) Что исправить в кодировке? И какую задать по умолчанию на БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2014, 16:18:44
|
|||
|---|---|---|---|
|
|||
Ошибка при выполнении ХП на сервере |
|||
|
#18+
добалю: ошибка идет по входному параметру ТИП varchar(255) Изменил тип параметра на varbinary(255) - запрос исполняется без ошибок, но результат нулевой, т.е. в тестовом режиме я задаю значение параметра заранее известное и которое возвращать должно не нулевое значение. Возвращается нулевое значение. Убрал параметр, сделал константой (символы так же - русские), исполнил процедуру - значение вернулось не нулевое. Очевидно - проблемы кодировки. Вопрос: Где ошибка кодировки? в ХП? или в Базе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2014, 16:44:04
|
|||
|---|---|---|---|
Ошибка при выполнении ХП на сервере |
|||
|
#18+
ZhekiusПри заполнении одного из параметров русскими символами (который, естественно, ссылается на столбец с заполненными русскими символами, другими словами, делает выборку) исполнение процедуры выдает ошибку: Incorrect string value: '\xD1\x8B....' for column at row 1 и название параметра.Кодировка реально передаваемой строки явно однобайтовая, т.е. не UTF8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2014, 17:00:42
|
|||
|---|---|---|---|
|
|||
Ошибка при выполнении ХП на сервере |
|||
|
#18+
Как быть? Изменить кодировку БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2014, 17:26:53
|
|||
|---|---|---|---|
Ошибка при выполнении ХП на сервере |
|||
|
#18+
ZhekiusКак быть?Передавать строку в кодировке UTF8. Эта строка откуда происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.12.2014, 14:53:57
|
|||
|---|---|---|---|
|
|||
Ошибка при выполнении ХП на сервере |
|||
|
#18+
авторПередавать строку в кодировке UTF8. Эта строка откуда происходит? DBForge Studio for My SQL В разделе процедур. Запуск и отлатка оттуда же. Параллельно работа и отладка приложения в ADO средствами Delphi через драйвер MyODBC. Проблема одинакова и в менеджере баз данных и в Delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.12.2014, 15:46:39
|
|||
|---|---|---|---|
|
|||
Ошибка при выполнении ХП на сервере |
|||
|
#18+
miksoft: спасибо, на нужные мысли направляешь ) Зри в корень, как говорится. В общем, решил включить режим отладки. Поглядел, что вместо значения ХЛЕБ в переменной лежит ???? (ну или какие-то такие значки). Почитал статейку Глава 10_ Поддержка наборов символов MySQL.mht (...блин, локально сохранилась, найдете если что) и после присвоения значения в переменную написал значение COLLATE utf8_unicode_ci, т.е. кусок кода цитирую из хранимой процедуры: .................. SELECT Field1, Field2 FROM Table1 WHERE Field2 = ParamIN COLLATE utf8_unicode_ci INTO ParamOUT Переменную ParamIN оставил как VarChar. Вот. Что здесь еще можно исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1833830]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 335ms |

| 0 / 0 |
