gpt4 book ai didi

delphi - 当数据集值为空时,delphi 中的 AsInteger 的值为多少?

转载 作者:行者123 更新时间:2023-12-02 04:51:10 24 4
gpt4 key购买 nike

我在delphi中有这段代码:

var_beg := MyQry.FieldByName('x_beg').AsInteger;
var_end := MyQry.FieldByName('x_end').AsInteger;
x_segment := copy(name, var_beg, var_end - var_beg);

现在,表中的列 x_begx_end 都可以为空,并且某些行上包含空值。我的问题是,当列 x_begx_end 为空时,变量 var_begvar_end 得到什么值?

最佳答案

AsInteger 自动将 Null 转换为 0函数(对于我尝试过的所有数据集组件都是如此,但使用不同的 TField 的后代可能会有不同的行为)。

documentation说:

Use AsInteger to read the value of the field's data into an integer, or to assign an integer value to the contents of the field. TField does not support integer values, and raises an exception when an attempt is made to get or set the AsInteger property.

转换结果取决于 TField您的对象是后代类。 TField.GetAsInteger是一个函数,声明如下:

function TField.GetAsInteger: Longint;
begin
raise AccessError('Integer'); { Do not localize }
end;

如果您需要检查值是否为 null,可以使用:

myField.AsVariant = Null 

myField.IsNull

关于delphi - 当数据集值为空时,delphi 中的 AsInteger 的值为多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com