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

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

TOracleDataSet выводит поля с пробелами как пустые


ali_tash ©   (2005-06-21 11:47:00) 

var
 TempValue: string;
....
  TempValue:= FResultSet.FieldByName(FListFields.Names[I]).AsString;
  if TempValue = EmptyStr then
    Value:= 'NULL'
  else
....

Почемуто когда значение поля только пробел то возвращается не пробел а, '' - пустая строка.
Подскажите как получить именно пробел ?
не понимаю почему возвращается пусто ведь Trim не используется
Спасибо.


Val   (2005-06-22 10:04:00) [1]

вероятно, потому что char их добавляет :)))


Sergey13   (2005-06-22 09:58:00) [2]

2[11] Val ©   (22.06.05 09:56)
До вчерашнего дня я думал примерно также. Черт его знает почему. 8-)


Val   (2005-06-22 09:56:00) [3]

Коллеги, прошу на мои измышления об усеканиях внимания не обращать. Плод нездоровой фантазии. :)


ali_tash   (2005-06-22 06:03:00) [4]

Да я тоже в Девалопере посмотрел пробулы там хранятся
ANB попробую

спасибо


ANB   (2005-06-21 21:01:00) [5]

1. Пробелы ораклом не усекаются.
2. Проблема в настройках компонента TOraSession. У него в Preferences есть свойство TrimStringFields. По умолчанию оно True.


Sergey13   (2005-06-21 13:04:00) [6]

2 [6] Val ©   (21.06.05 12:59)
Проверил в Дивелопере - нифига не обрезаются.


Val   (2005-06-21 13:03:00) [7]

:) и опять прогнал. не усекаются они вообще, похоже.


Val   (2005-06-21 12:59:00) [8]

Проверил - ошибся - поправлюсь - усекаются пробелы слева при наличии в строке иных символов. К данному случаю, это, естественно не относится.

Тогда описанной автором ситуации быть не может, если ничто больше из строки пробелы не удаляет.


Reindeer Moss Eater   (2005-06-21 12:38:00) [9]

С какого перепоя должны усекаться пробелы?

create table test(aaa varchar2(4000));
insert into test values('  ');
select count(*) from test where aaa = '  ';


Sergey13   (2005-06-21 12:29:00) [10]

2ali_tash   (21.06.05 11:47)
А как ты знаешь, что в поле пробел?

2[2] Val ©   (21.06.05 12:12)
>В varchar|varchar2 пробелы усекаются.
Я тоже так думал, но это вроде не совсем так.


Reindeer Moss Eater   (2005-06-21 12:23:00) [11]

Кроме того, в Оракле пустая строка - это всегда NULL.


Val   (2005-06-21 12:12:00) [12]

В varchar|varchar2 пробелы усекаются. Если нужно хранить пробел, укажите соотв. тип поля. Если не нужно - проверяйте на IsNull и выводите сколько угодно пробелов и чего угодно еще.


Seg   (2005-06-21 11:50:00) [13]

Пробел не хранится как строка.
Можно использовать в запросе Decode и проверять на NULL.


Наверх

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