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