Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];

Вниз

Как передать русскую строку в ХП на MS SQL 2005 из D7   Найти похожие ветки 

 
Int23   (2008-03-21 15:01) [0]

Есть приложение, написанное на Д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 показует что там иероглифы. А для англ строки всё работает. В чём грабли?


 
Правильный_Вася   (2008-03-21 15:07) [1]

а varchar для русских подходит?
мож, нужно nvarchar?


 
Int23   (2008-03-21 15:10) [2]

Нет. varchar работает. Пробовал вызвать хп на сервере (SSMS)


 
Правильный_Вася   (2008-03-21 15:36) [3]

ADO ?


 
Int23   (2008-03-21 16:06) [4]

Да, ADO. Вот нашёл описание проблемы http://delphikingdom.com/asp/answer.asp?IDAnswer=59812 . Только решения там обходное. Мне такое не подходит.
И самое интересное пишу код
Prm:=SP.Parameters.ParamByName("@Tag").ParameterObject;
Prm.Value:="Строка";
После присоения появляются иероглифы :(


 
-----------------------------   (2008-03-21 16:09) [5]

Prm.Value:=WideStriing("Строка")
?


 
Johnmen ©   (2008-03-21 16:10) [6]

На заголовок ХП можно глянуть?


 
Int23   (2008-03-21 16:21) [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


 
Правильный_Вася   (2008-03-21 16:43) [8]

в параметрах подключения выставлены настройки локали?
совпадают ли с ожидаемыми в БД?


 
sniknik ©   (2008-03-21 16:52) [9]

> И создаю параметр
нафига? сам он создаст его наверняка правильнее

> После присоения появляются иероглифы :(
> А для англ строки всё работает.
обыкновенное чудо...
проверь
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"
чудо...


 
Int23   (2008-03-21 17:08) [10]

sniknik
Ды вы прям фокусник :) Т.е. у меня проблема с коннекшином. надо коллате настроить. А как это сделать?


 
Int23   (2008-03-21 17:19) [11]

На базе стоит Cyrillic_General_CI_AS, а в ConnectionString я ничего не прописываю. Как прописать?


 
Int23   (2008-03-21 17:42) [12]

Вообщем разобрался. Ошибка была у меня...... Watch показует иероглифы, но на скл посылается правильный запрос (сморел в Профилере). Пора отдыхать.....


 
sniknik ©   (2008-03-21 19:48) [13]

> Ошибка была у меня......
ага. тут
>> И создаю параметр
> нафига? сам он создаст его наверняка правильнее



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2008.09.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.032 c
15-1217346194
Кое кто
2008-07-29 19:43
2008.09.21
Свежие шахматные партии


15-1217528621
Андрей Молчанов
2008-07-31 22:23
2008.09.21
Часть TLabel как гиперссылка


15-1217099675
palva
2008-07-26 23:14
2008.09.21
Не дождался "С днем рождения",


3-1205663074
Kolan
2008-03-16 13:24
2008.09.21
Как проапдейтить строку, а если её нет, то вставить?


2-1218444298
Neon-w
2008-08-11 12:44
2008.09.21
Собрать из двух один)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский