delphi - Delphi中AsInteger和Value有什么区别?

标签 delphi

我想知道以下两个与delphi中的数据集相关的语句之间的区别。

dsMyDataSet.ParamByName('ID').AsInteger := 1122; //If ID is integer
dsMyDataSet.ParamByName('ID').AsString := '1122'; //If ID is string

dsMyDataSet.ParamByName('ID').Value := 1122; //ID is string or integer

这些陈述的含义相同吗? “value”是否隐式将整数转换为字符串?

最佳答案

例如,TParam.AsInteger 属性设置参数的值和数据类型TParam.Value 执行相同的操作,但 TParam 将决定哪种类型将映射到 Variant 内的值,并且并不总是它您想要的数据类型。

我建议您仅使用 AsXXX 属性来设置值,因为您将控制参数的数据类型,这样可以避免出现参数绑定(bind)错误。

因此,回答您的最后一个问题:不,这些值不会转换为正确的数据类型,您必须通过选择正确的属性来分配值来设置数据类型。

关于delphi - Delphi中AsInteger和Value有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18827503/

相关文章:

delphi - THTTPRIO 的默认超时值是多少

android - 将文件从 Android WPD 设备传输到 PC

ios - 控件变得不可见 - 如何修复奇怪的 GUI 行为 - Delphi xe6

windows - TFileListBox 组件查找不再存在的文件

delphi - 进程外 COM 服务器执行

c++ - 在 Delphi/C++ Builder 中对 TLabel 使用 TGlowEffect

c# - C# 和 Delphi 之间的管道,如何让它工作?

delphi - FireMonkey 控件的动画效果不流畅

excel - "Interface not supported"尝试从 Delphi 打开 Excel 或 Word 时出错

delphi - 销毁迭代器中的调用保证