代码之家  ›  专栏  ›  技术社区  ›  Marioh

TAggregateField.IsNull和(TAggregateField.Value=Null)之间有什么区别

  •  2
  • Marioh  · 技术社区  · 17 年前

    我在客户机数据集中有一个聚合字段,我使用一个函数来获取聚合值,如果客户机数据集为空,则函数应返回0。

    如果我这样做:

    if MyClientDataSet.AggregateField.IsNull then
       Result := 0
    else
       Result := MyClientDataSet.AggregateField.Value;
    

    当客户端数据集为空时,执行else部分并引发异常(无法将变量转换为货币错误)。

    但是如果我这样做的话

    if MyClientDataSet.AggregateField.Value = Null then
       Result := 0
    else
       Result := MyClientDataSet.AggregateField.Value;
    

    所以我的问题是:在TAggregateField中,IsNull属性和将Value属性与Null值进行比较有什么区别?

    1 回复  |  直到 17 年前
        1
  •  3
  •   Francesca    17 年前


    在另一种情况下,测试是否有一个null变量,该变量是数据集在GetAggregateValue中返回的变量。