Форум: "Базы";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];
ВнизОбрезается поле 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c