![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обрезается поле 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 ?