Вниз
Скачать: CL | DM;

В чем разница между VarIsEmpty(NewVal) и VarIsNull(NewVal) ?   Найти похожие ветки 

 
kyn66 ©   (2006-09-21 12:15) [0]

Уважаемые мастера, помогите разобраться в данной ситуации. При добавлении или редактировании данных в таблице использую следующий код:

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 - пустое, а оно всеравно добавляется.


 
ЮЮ ©   (2006-09-21 12:27) [1]

когда NewVal = "01" и TmpVal - пустое оно и не NULL тоже.

((not VarIsEmpty(TmpVal)) or (not VarIsNull(TmpVal)))  всегда ИСТИНА


 
ЮЮ ©   (2006-09-21 12:39) [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


 
umbra ©   (2006-09-21 15:23) [3]

VarIsClear(TmpVal) or VarIsClear(NewVal) or (NewVal = "01")



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.034 c
2-1162723518
Ezorcist
2006-11-05 13:45
2006.11.19
Занят ли порт?


2-1162308816
doooooo
2006-10-31 18:33
2006.11.19
DWord => 2Word


2-1162578635
J_SABER
2006-11-03 21:30
2006.11.19
Работа с архивами.


1-1160573603
alexvan
2006-10-11 17:33
2006.11.19
Изменение цвета


1-1160418934
o_serg
2006-10-09 22:35
2006.11.19
ListView.Items.Item[n].Data присвоить ansistring




   Наверх