![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как передать русскую строку в ХП на MS SQL 2005 из D7
Int23 © (2008-03-21 15:01:00)Есть приложение, написанное на Д7 и работающее с SQL 2005. Счас перевожу на 2005. Есть ХП у которой параметр объявлен так @Tag varchar(1000)=null. Пытаюсь из клиенсткого приложения выхвать эту ХП. И создаю параметр SP.AddParam_('@Tag', pdInput, ftString, 500, 0, Tag);
Затем присваиваю значение так
SP.Parameters.ParamByName('@Tag').Value := Tag;
Если Tag содержит русские буквы, то при просмотре SP.Parameters.ParamByName('@Tag').Value показует что там иероглифы. А для англ строки всё работает. В чём грабли?
sniknik (2008-03-21 19:48:00) [1]> Ошибка была у меня......
ага. тут
>> И создаю параметр
> нафига? сам он создаст его наверняка правильнее
Int23 (2008-03-21 17:42:00) [2]Вообщем разобрался. Ошибка была у меня...... Watch показует иероглифы, но на скл посылается правильный запрос (сморел в Профилере). Пора отдыхать.....
Int23 (2008-03-21 17:19:00) [3]На базе стоит Cyrillic_General_CI_AS, а в ConnectionString я ничего не прописываю. Как прописать?
Int23 (2008-03-21 17:08:00) [4]sniknik
Ды вы прям фокусник :) Т.е. у меня проблема с коннекшином. надо коллате настроить. А как это сделать?
sniknik (2008-03-21 16:52:00) [5]> И создаю параметр
нафига? сам он создаст его наверняка правильнее
> После присоения появляются иероглифы :(
> А для англ строки всё работает.
обыкновенное чудо...
проверь
CREATE procedure MyProc
@RysSt varchar(50),
@LatSt varchar(50)
AS
SELECT @RysSt COLLATE Cyrillic_General_CI_AS, @LatSt COLLATE Latin1_General_CS_AS
и выполнить варианты, посмотреть что вернет
MyProc 'Строка', 'Строка'
MyProc 'String', 'String'
чудо...
Правильный_Вася (2008-03-21 16:43:00) [6]в параметрах подключения выставлены настройки локали?
совпадают ли с ожидаемыми в БД?
Int23 (2008-03-21 16:21:00) [7]>>Prm.Value:=WideStriing('Строка')
Не полегчало :(
Заголовок
CREATE procedure dbo.MyProc
@Security xml=null
,@ActionId varchar(5)='view'
,@ActIdObj varchar(5)=null
,@axObjectName varchar(512)=null
,@Tag varchar(1000)=null
,@Blob image=null
,@ObjectNo bigint=null
Johnmen (2008-03-21 16:10:00) [8]На заголовок ХП можно глянуть?
----------------------------- (2008-03-21 16:09:00) [9]Prm.Value:=WideStriing('Строка')
?
Int23 (2008-03-21 16:06:00) [10]Да, ADO. Вот нашёл описание проблемы http://delphikingdom.com/asp/answer.asp?IDAnswer=59812. Только решения там обходное. Мне такое не подходит.
И самое интересное пишу код
Prm:=SP.Parameters.ParamByName('@Tag').ParameterObject;
Prm.Value:='Строка';
После присоения появляются иероглифы :(
Правильный_Вася (2008-03-21 15:36:00) [11]ADO ?
Int23 (2008-03-21 15:10:00) [12]Нет. varchar работает. Пробовал вызвать хп на сервере (SSMS)
Правильный_Вася (2008-03-21 15:07:00) [13]а varchar для русских подходит?
мож, нужно nvarchar?