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

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

Сохранение значения полей. [D5, MSSQL]


yozhik ©   (2002-05-28 20:11:00) 

Уважаемые, подскажите можно ли использоваить CalclField для хрения значений остальных полей запроса, если да то каким образом.


yozhik   (2002-05-29 20:38:00) [1]

после переоткрытия массив перезаписывается, так как данные сохраняются в базе и возвратов не требуется


-=Sergeante=-   (2002-05-29 17:08:00) [2]

Данные в массиве будут определены при открытии запроса. Каждой определённой записи будет соответствовать свой индекс массива. НО! Нет гарантии, что при переоткрытии запроса записи сохранят такую же последовательность (нумерацию) в соответствии с индексами массива.


yozhik   (2002-05-29 12:42:00) [3]

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

я нашел другой способ, использование массива...


-=Sergeante=-   (2002-05-29 12:02:00) [4]

Типа такого:

var s:string;
...
procedure Tform1.Table1AfterScroll(sender:TObject);
begin
s:=Table1.fieldbyname("field1").asstring+" "+Table1.fieldbyname("field2").asstring;
end;


-=Sergeante=-   (2002-05-29 11:59:00) [5]

А если не использовать CalcFields? Вмасто этого определить глобальную переменную, в которую в событии OnAfterScroll будет заноситься результат обработки. Т.о. у тебя в этой переменной постоянно находиться нужное значение при любом перемещении по НД.


yozhik   (2002-05-29 10:21:00) [6]

OnCalcFields:=nil - не подходит, почему я так и не понял, но когда устанавливаю, зачения CalcField сбрасываются :(
CurValue, NewValue, OldValue: Variant; - использовал, но почему-то, CurValue=NewValue=OldValue=Null при любых раскладах :(


Сергей Иванов   (2002-05-29 09:51:00) [7]

А как насчет
CurValue, NewValue, OldValue: Variant;
имеющих место быть у TField. Не подходят?


-=Sergeante=-   (2002-05-29 09:05:00) [8]

После открытия таблицы (и обсчета значений вычисл-го поля)попробуй сделать OnCalcFields:=nil


yozhik   (2002-05-28 20:48:00) [9]

так не работает, при измеенение значения поля CalcField тоже меняет свое значение, может обработчик неравльно написан?


if Query1CalcFld.IsNull then
Query1CalcFld.Value := Query1SrcFld.Value


TSV   (2002-05-28 20:45:00) [10]

По идее - да.
Создаешь его в design-time. Делаешь обработчик OnCalcFields. Пересчитывать само будет при изменении поля и не только.

Удачи.


yozhik   (2002-05-28 20:32:00) [11]

Перефразирую вопрос.
Можно ли использовать CalcField для хранения значения любого другого поля, т.е. чтоб в CalcField сохранялось значени поля до его изменения.


TSV   (2002-05-28 20:29:00) [12]

А что значит - остальных полей запроса???
Или тебя интересует механизм использования CalclFields???


yozhik   (2002-05-28 20:23:00) [13]

сорри, для хранения :)


TSV   (2002-05-28 20:19:00) [14]

Для чего использовать???


Наверх

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