Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.27;
Скачать: CL | DM;

Вниз

Обрезается поле nvarchar в MSSQL   Найти похожие ветки 

 
Мила   (2005-03-02 10:13) [0]

Есть табличка, в которой храниться в поле FormulaResult  nvarchar(500) условие выборки для sql-запроса (например:"(IdSort>1) and (IdSort<4) and (IdParentMobil=2) and (IdMobilEnd=237)"). Хранимая процедура создает отчет по этим условиям. При выборке
DECLARE @FormulaResult VarChar(500)
SELECT @FormulaResult = FormulaResult FROM SprResult
в @FormulaResult  выбралось часть выражения. Когда смотришь в Enterprise Manager , то такое впечатление, что строку разбили на две (можно посмотреть первую часть, подводишь курсор к последнему символу, двыгаешься влево и выскакивает оставшаяся чась). Один раз такая ситуация уже была, заново ввели выражение, вчера - опять .
Помогите, пожалуйста


 
Johnmen ©   (2005-03-02 10:33) [1]

М.б. в строке встречается #10 или #0 ?


 
Мила   (2005-03-02 10:49) [2]

нет, только корректное sql-условие


 
ЮЮ ©   (2005-03-02 10:53) [3]

при чем здесь "корректное sql-условие"? Символы переноса могут встретиться в данных поля FormulaResult.


 
Мила   (2005-03-02 10:55) [4]

нету символов переноса


 
Johnmen ©   (2005-03-02 11:02) [5]

Приведи, как заполняется поле значением, когда с этим значением проблемы.


 
ЮЮ ©   (2005-03-02 11:17) [6]

>подводишь курсор к последнему символу, двыгаешься влево

не понял, чего и где можно двигать влево

Попробуй наоборот, раздвтнуть вправо столбец, благо грид ЕМ позволяет раздвигать его как угодно сильно и скроллировать затем


 
Мила   (2005-03-02 11:24) [7]

в поле строка "(((IdSort in (3,4)) and (IdParentMobil=2) and (IdTransport=3) and not(idParentPlaceBegin=8 and idPlaceBegin=1 and IdPartPlaceBegin=3)) or ((idSort>4) and (idSort<8) and (idParentMobil=2) and (IdTransport=3)) or ((IdSort in(2,3)) and (IdParentMobil=2) and (idParentPlaceBegin=8 and idPlaceBegin=1 and IdPartPlaceBegin=3) and ((idMobilEnd=237) or  (idTransport=3))))"
на экран монитора она не влезает, когда внутри по полю пробегаешь курсором, то идешь в конец или в начало


 
Ega23 ©   (2005-03-02 11:31) [8]

что-то мне не нравится, что поле в таблице - nvarchar(500), а переменная - varchar(500).
Хотя не должно к ошибке привести, но всё-таки...


 
Ольга   (2005-03-02 13:19) [9]

Вы переменную @FormulaResult смотрите в Query Analyser? И строка обрезана? Не должно быть так, может это ограничение просмотрового окна. Сравните длины строк. Символы перевода, даже если они есть, не должны мешать. nvarchar или varchar - тоже без разницы.
А может вы результат @FormulaResult считываете в Delphi в переменную типа String (255 символов)?


 
Топпер   (2005-03-02 17:06) [10]


> А может вы результат @FormulaResult считываете в Delphi
> в переменную типа String (255 символов)?


Ольга, читаем хелп:

AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.

...
In the default {$H+} state, the compiler interprets string (when it appears without a bracketed number after it) as AnsiString. Use the {$H-} directive to turn string into ShortString.


 
Ольга   (2005-03-02 17:28) [11]

[10]
Да, это я погорячилась. Имела ввиду случай присвоения значения переменной одной строкой:

A quoted string is a sequence of up to 255 characters from the extended ASCII character set, written on one line and enclosed by apostrophes.

Здесь явно не тот случай, sorry...


 
Anatoly Podgoretsky ©   (2005-03-02 17:56) [12]

Ega23 ©   (02.03.05 11:31) [8]
Ровно в два раза и обрежет.


 
Johnmen ©   (2005-03-02 18:09) [13]

>Anatoly Podgoretsky ©   (02.03.05 17:56) [12]

Похоже. nvchar - UNICODE.


 
Reindeer Moss Eater ©   (2005-03-02 18:11) [14]

А что никто не спрашивает про библиотеку доступа?


 
Anatoly Podgoretsky ©   (2005-03-02 20:20) [15]

Именно, SizeOf(Char)=SizeOf(WideChar)/2;
Конечно существует возможность, что будет произведено преобразования, но показания подследственного этого не подтвеждают.



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

Текущий архив: 2005.03.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
14-1110348356
Ozone
2005-03-09 09:05
2005.03.27
Эффективность канала связи


1-1110296748
rolex
2005-03-08 18:45
2005.03.27
Увеличится ли скорость в моём случае если я сделаю 2 потока?


1-1110869672
Alex_k
2005-03-15 09:54
2005.03.27
Прятать поле Excel из Дельфи......


1-1110915877
AlexLines
2005-03-15 22:44
2005.03.27
Вопрос по интернационализации


14-1110131223
k@rt
2005-03-06 20:47
2005.03.27
Анлим в Питере