Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обрезается поле nvarchar в MSSQL [MSSQL]


Мила ©   (2005-03-02 10:13:00) 

Есть табличка, в которой храниться в поле 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 , то такое впечатление, что строку разбили на две (можно посмотреть первую часть, подводишь курсор к последнему символу, двыгаешься влево и выскакивает оставшаяся чась). Один раз такая ситуация уже была, заново ввели выражение, вчера - опять .
Помогите, пожалуйста


Anatoly Podgoretsky   (2005-03-02 20:20:00) [1]

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


Reindeer Moss Eater   (2005-03-02 18:11:00) [2]

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


Johnmen   (2005-03-02 18:09:00) [3]

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

Похоже. nvchar - UNICODE.


Anatoly Podgoretsky   (2005-03-02 17:56:00) [4]

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


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

[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...


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


> А может вы результат @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 13:19:00) [7]

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


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

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


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

в поле строка "(((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))))"
на экран монитора она не влезает, когда внутри по полю пробегаешь курсором, то идешь в конец или в начало


ЮЮ   (2005-03-02 11:17:00) [10]

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

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

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


Johnmen   (2005-03-02 11:02:00) [11]

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


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

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


ЮЮ   (2005-03-02 10:53:00) [13]

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


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

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


Johnmen   (2005-03-02 10:33:00) [15]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо