【问题标题】:How in Delphi can I force an SQLite aggregate field to be a numeric field? [duplicate]如何在 Delphi 中强制 SQLite 聚合字段成为数字字段? [复制]
【发布时间】:2015-09-28 02:20:08
【问题描述】:

我们正在转换为 MySQL 编写的程序以使用 SQLite。一些代码会自动适应我们从数据库返回的字段类型。 SQLite 具有将 SQL SUM(...) 函数呈现为 ftWideString 的“有趣”属性(大概是为了处理可能的溢出)。我们需要这些字段是整数或浮点字段。我试过这个,这似乎很明显迫使 SQL 给你你需要的类型:

SELECT cast(sum(units) as int) FROM dr02

但类型仍然是 ftWideString。

如何让它根据需要返回 ftInteger 或 ftLargeInt 或 ftFloat?

【问题讨论】:

标签: sqlite delphi types


【解决方案1】:

试试

SELECT sum(units)*1.0 FROM dr02

SELECT cast(sum(units) as real) FROM dr02

您没有定义正在使用的库。您的问题与访问 SQLite3 的库高度相关。直接访问(通过ZDBC/Zeos 7.2SynSQLite3)将允许直接获取预期类型的​​值。

【讨论】:

  • 要了解更多信息,请使用评论。
  • 我提出了两个建议,作为答案。
  • 你问了一个问题。 (而且他们不会工作。)
  • 他们为什么不工作? stackoverflow.com/questions/8305613
  • 因为无论使用什么库都可以确定列类型,而无需查看值的类型。
猜你喜欢
  • 2022-12-12
  • 2018-04-04
  • 2019-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-13
相关资源
最近更新 更多