gpt4 book ai didi

delphi - 将变体转换为 double 时出错 [Delphi XE + IBObjects 4.9.12]

转载 作者:行者123 更新时间:2023-12-03 15:31:27 24 4
gpt4 key购买 nike

我的配置:

德尔福XE
Firebird 2.1
IBObjects 4.9.12
Windows 7 64位

当我尝试为 IBOQuery 参数设置值时出现异常(“无法将类型 (UnicodeString) 的变体转换为类型 (Double)”)。

该异常是由 IB_Components.pas 中的 TIB_Column.SetAsVariant 过程引发的(第 42795 行)。要创建这种情况,只需尝试将字符串传递给日期参数:


myQuery.paramByName('mydate').AsString := DateToStr(IncDay(Now,5));

在过去 25 天里,我一直在尝试解决这个问题,但在 IBO 支持列表中我没有得到答案。
有人有想法吗?

最佳答案

IBObjects 的架构正在将(在执行时)所有参数、字段等转换为字符串或变体。如果您的“mydate”参数是“DateTime”(数字)类型,那么您必须用对应的类型值填充它。用字符串填充“数字”类型参数不是逻辑...

试试这个

myQuery.paramByName('mydate').AsDateTime:= Now+5;//与大卫的答案相同。

myQuery.paramByName('mydate').AsFloat:=Now+5;//或 IncDay(Now,5)

最诚挚的问候,
拉杜

关于delphi - 将变体转换为 double 时出错 [Delphi XE + IBObjects 4.9.12],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4781491/

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