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

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

BeforeUpdateRecord компоненты DataSetProvider [D7, MSSQL]


DimonNew ©   (2006-02-27 14:20:00) 

Как в случае модификации данных определить какие изменялись поля в этом событии?
Если поле не изменялась, то NewValue возвращает unassigned, который в случае, если поле integer, то unassigned равносилен 0. А если поле поменялось на ноль, то проверка

if field.NewValue=unassigned then
 begin
 end;
if field.NewValue=0 then
 begin
 end;

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


Desdechado   (2006-02-28 17:25:00) [1]

F1


DimonNew   (2006-02-28 15:09:00) [2]

А что содержиться в sourceDS? Весь набор данных или обновляемая строчка, как в DeltaDS?


Desdechado   (2006-02-27 15:49:00) [3]

сравнить данные в SourceDS и DeltaDS
или IsNull, IsEmpty, IsClear


Desdechado   (2006-02-27 15:49:00) [4]

сорри
VarIsNull, VarIsEmpty, VarIsClear


DimonNew   (2006-02-27 14:29:00) [5]

In the BeforeUpdateRecord event, you can see if a field has changed by using the
following code:
if not VarIsEmpty(DeltaDS.FieldByName('FieldName').NewValue) then
 FieldHasChanged;


Наверх

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