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

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

Присвоение TField.Value или TField.AsString [D5]


Страницы:   1 2

harisma ©   (2010-11-04 18:39:00) 

Почему, когда я присваиваю TField.Value или TField.AsString значение, состоящее исключительно из пробелов или заканчивающееся на пробелы, то в первом случае получаю просто пустую строку, а во втором случае только текст без завершающих пробелов?

Другими словами:
procedure ...(var AFld: TStringField);
var
 s, s1: string;
begin
 s: = '      ';
 AFld.AsString := s;
 ....
 s1 := AFld.AsString; <-- тут получаю s1 = '' !!!
end;

procedure ...(var AFld: TStringField)
var
 s, s1: string;
begin
 s: = 'text  ';
 AFld.AsString := s;
 ....
 s1 := AFld.AsString; <-- тут получаю s1 = 'text' !!!

end;

Как сделать так, чтобы в поле сохранялись данные именно в таком виде, в каком я их передал туда?


sniknik   (2010-11-04 20:36:00) [21]

> Другими словами:
> procedure ...(var AFld: TStringField);
var лишнее, ты же не меняешь сам объект AFld (передать другой вместо него "наружу"), ты меняешь значение одного из его полей по ссылке, т.е. сделаешь это из одной ссылки, или из ее копии, не суть.
хотя это не по "проблеме", так для информации.

> Как сделать так, чтобы в поле сохранялись данные именно в таком виде, в каком я их передал туда?
поле в базе (а следовательно и в рекордсете после) должно быть типа varchar, а не char. char хранится в виде дополненного пробелами до полной длины, при чтении делается соответственно rtrim. т.е. это нормальное поведение, и обработка конкретного типа в большинстве движков.


Страницы:   1 2

Наверх

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