![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В чем разница между VarIsEmpty(NewVal) и VarIsNull(NewVal) ? [D7, ADS]
kyn66 © (2006-09-21 12:15:00)Уважаемые мастера, помогите разобраться в данной ситуации. При добавлении или редактировании данных в таблице использую следующий код:
var
NewVal, TmpVal : Variant;
begin
NewVal := ClientTblDoccod.NewValue;
TmpVal := ClientTblDocser.NewValue;
if ((not VarIsEmpty(NewVal)) or (not VarIsNull(NewVal))) and
(NewVal = '01') and
((not VarIsEmpty(TmpVal)) or (not VarIsNull(TmpVal))) then
St.Append('Сообщение об ошибке');
end;
Может что не так с синтаксисом? Если в режиме редактирование ставлю пустым поле для TmpVal, или оно изначально пустое, то срабатывает добавление ошибочного сообщения. Т.е. оно не должно добавляться, когда NewVal = '01'и TmpVal - пустое, а оно всеравно добавляется.
umbra (2006-09-21 15:23:00) [1]
VarIsClear(TmpVal) or VarIsClear(NewVal) or (NewVal = '01')
ЮЮ (2006-09-21 12:39:00) [2]NULL и Unasigned это ещё два возможных значения для Variant
VarIsEmpty(Unasigned) = true и false для других значений variant
VarIsNull(NULL) = true и false для других значений variant
Ни один variant не может быть сразу и NULL и Unasigned, поэтому
((not VarIsEmpty(TmpVal)) or (not VarIsNull(TmpVal))) ИСТИННО для люблго значения TmpVal
ЮЮ (2006-09-21 12:27:00) [3]когда NewVal = '01' и TmpVal - пустое оно и не NULL тоже.
((not VarIsEmpty(TmpVal)) or (not VarIsNull(TmpVal))) всегда ИСТИНА