Главная страница
    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.008 c
2-1218446900
REX2008
2008-08-11 13:28
2008.09.21
Подключение звукового файла


4-1196809281
GanibalLector
2007-12-05 02:01
2008.09.21
EFOpenError Процесс не может получить доступ к файлу


15-1217264142
Gooler
2008-07-28 20:55
2008.09.21
Как отследить копирование экрана?


1-1198490472
InfectedM
2007-12-24 13:01
2008.09.21
SetCursorPos(x, y); не работает в игре


2-1218057151
demon
2008-08-07 01:12
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский