不兼容的类型:widestring 和 tintegerfield
incompatible types: widestring and tintegerfield
有人知道这是怎么回事吗?
我已将所有数据库对象声明为整数,并将数据集对象声明为整数
当我 运行 我的 ado 查询时,我从这里获取值,我试图将其分配给数据集,该数据集也被声明为整数。但它一直给我
不兼容的类型:widestring 和 tintegerfield
这里是确切的代码:
dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID) :=
adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger;
dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID) := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
不应该编译。
看起来 dxMemData1RetailCalendarPeriodID
是您在 dxMemData1 数据集上创建的持久字段对象。 FieldByName
方法用于根据名称查找 字段,但您不需要这样做,因为您已经拥有字段,dxMemData1RetailCalendarPeriodID
!
所以,你需要的只是
dxMemData1RetailCalendarPeriodID.AsInteger := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
编译器错误的原因是 FieldByName
期望传递一个字符串,给出字段的 name 而你试图传递 field 本身,它是一个 TObject 后代而不是一个字符串。以下内容本来可以工作,但由于我已经显示的代码而没有必要:
dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID.FieldName) := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger;
更新 你说你遇到了 "Invalid variant operation" 错误。如果您使用此代码,您仍然得到它吗:
if not adoTreeWindow.FieldByName('RetailCalendarPeriodID').IsNull then
dxMemData1RetailCalendarPeriodID.AsInteger := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
?
有人知道这是怎么回事吗?
我已将所有数据库对象声明为整数,并将数据集对象声明为整数
当我 运行 我的 ado 查询时,我从这里获取值,我试图将其分配给数据集,该数据集也被声明为整数。但它一直给我
不兼容的类型:widestring 和 tintegerfield
这里是确切的代码:
dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID) :=
adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger;
dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID) := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
不应该编译。
看起来 dxMemData1RetailCalendarPeriodID
是您在 dxMemData1 数据集上创建的持久字段对象。 FieldByName
方法用于根据名称查找 字段,但您不需要这样做,因为您已经拥有字段,dxMemData1RetailCalendarPeriodID
!
所以,你需要的只是
dxMemData1RetailCalendarPeriodID.AsInteger := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
编译器错误的原因是 FieldByName
期望传递一个字符串,给出字段的 name 而你试图传递 field 本身,它是一个 TObject 后代而不是一个字符串。以下内容本来可以工作,但由于我已经显示的代码而没有必要:
dxMemData1.FieldByName(dxMemData1RetailCalendarPeriodID.FieldName) := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger;
更新 你说你遇到了 "Invalid variant operation" 错误。如果您使用此代码,您仍然得到它吗:
if not adoTreeWindow.FieldByName('RetailCalendarPeriodID').IsNull then
dxMemData1RetailCalendarPeriodID.AsInteger := adoTreeWindow.FieldByName('RetailCalendarPeriodID').AsInteger
?