在Data.DB
单元中,声明了以下枚举:
TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ...)
我需要确定搜索网格中字段的DataType
是否为整数,字符串,浮点数,日期,blob等。
整数应该是可以用作整数的任何类型,例如ftSmallint
,ftInteger
,ftWord
等。
这样做的方法比以下更短吗?
if (Field.DataType = ftInteger) or (Field.DataType = ftSmallint) or (Field.DataType = ftWord) then Result := ftInteger;
答案 0 :(得分:3)
你可以这样做
if Field.DataType in [ftInteger, ftSmallInt, ftWord] then ...
此外,您可以将集类型定义为set of TFieldType
,并使用该类型的变量来存储您要查找的字段类型,然后在其上使用if Field.DataType in ...
。
答案 1 :(得分:1)
case Field.DataType of
ftUnknown, ftVariant : Result:= ftVariant;
ftWideString, ftString : Result:= ftString;
ftAutoInc, ftLargeint,ftWord, ftInteger, ftSmallint : Result:= ftInteger;
ftBoolean : Result:= ftBoolean;
ftFMTBcd : Result:= ftFMTBcd;
ftBCD : Result:= ftBCD;
ftFloat, ftCurrency : Result:= ftFloat;
ftTime, ftDateTime, ftDate: Result:= ftDateTime;
ftGraphic, ftBlob, ftMemo, ftFmtMemo: Result:= ftBlob;
end;