Вниз
Скачать: 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
15-1162410087
Amt2001
2006-11-01 22:41
2006.11.19
Как принудительно убить пользователя на сервере FTP?


1-1160585051
AndreyGor
2006-10-11 20:44
2006.11.19
Вызов функции из стандартных библиотек винды


1-1160396740
IMHO
2006-10-09 16:25
2006.11.19
Быстрый поиск в двоичном файле


1-1160572979
guav
2006-10-11 17:22
2006.11.19
forward declaration для процедурных типов


2-1162281234
vitv
2006-10-31 10:53
2006.11.19
QReport-документация




   Наверх