|
|
|
Ошибка при выполнении ХП на сервере
|
|||
|---|---|---|---|
|
#18+
Есть хранимая процедура с параметрами на сервере. При заполнении одного из параметров русскими символами (который, естественно, ссылается на столбец с заполненными русскими символами, другими словами, делает выборку) исполнение процедуры выдает ошибку: Incorrect string value: '\xD1\x8B....' for column at row 1 и название параметра. При условии заполнения латинскими буквами - всё ок. Тип запрашиваемого столбца VarChar (255). Кодировка БД по умолчанию UTF(8) Что исправить в кодировке? И какую задать по умолчанию на БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2014, 14:45:43 |
|
||
|
Ошибка при выполнении ХП на сервере
|
|||
|---|---|---|---|
|
#18+
добалю: ошибка идет по входному параметру ТИП varchar(255) Изменил тип параметра на varbinary(255) - запрос исполняется без ошибок, но результат нулевой, т.е. в тестовом режиме я задаю значение параметра заранее известное и которое возвращать должно не нулевое значение. Возвращается нулевое значение. Убрал параметр, сделал константой (символы так же - русские), исполнил процедуру - значение вернулось не нулевое. Очевидно - проблемы кодировки. Вопрос: Где ошибка кодировки? в ХП? или в Базе данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2014, 16:18:44 |
|
||
|
Ошибка при выполнении ХП на сервере
|
|||
|---|---|---|---|
|
#18+
ZhekiusПри заполнении одного из параметров русскими символами (который, естественно, ссылается на столбец с заполненными русскими символами, другими словами, делает выборку) исполнение процедуры выдает ошибку: Incorrect string value: '\xD1\x8B....' for column at row 1 и название параметра.Кодировка реально передаваемой строки явно однобайтовая, т.е. не UTF8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2014, 16:44:04 |
|
||
|
Ошибка при выполнении ХП на сервере
|
|||
|---|---|---|---|
|
#18+
Как быть? Изменить кодировку БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2014, 17:00:42 |
|
||
|
Ошибка при выполнении ХП на сервере
|
|||
|---|---|---|---|
|
#18+
ZhekiusКак быть?Передавать строку в кодировке UTF8. Эта строка откуда происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2014, 17:26:53 |
|
||
|
Ошибка при выполнении ХП на сервере
|
|||
|---|---|---|---|
|
#18+
авторПередавать строку в кодировке UTF8. Эта строка откуда происходит? DBForge Studio for My SQL В разделе процедур. Запуск и отлатка оттуда же. Параллельно работа и отладка приложения в ADO средствами Delphi через драйвер MyODBC. Проблема одинакова и в менеджере баз данных и в Delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 14:53:57 |
|
||
|
Ошибка при выполнении ХП на сервере
|
|||
|---|---|---|---|
|
#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. Вот. Что здесь еще можно исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 15:46:39 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38828172&tid=1833830]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 398ms |

| 0 / 0 |
