使用 Delphi 10.2、SQLite 和 Teecharts。我的 SQLite 数据库有两个字段,使用以下命令创建:
CREATE TABLE HistoryRuntime ('DayTime' DateTime, Device1 INTEGER DEFAULT (0));
我使用带有以下 SQL的TFDQuery
调用来访问表:qryGrpahRuntime
SELECT DayTime AS TheDate, Sum(Device1) As DeviceTotal
FROM HistoryRuntime
WHERE (DayTime >= "2017-06-01") and (DayTime <= "2017-06-26")
Group by Date(DayTime)
使用 Delphi IDE 中的字段编辑器,我可以添加两个持久字段,分别为TheDate
aTDateTimeField
和.DeviceTotal
TLargeIntField
我在程序中运行此查询以创建我在设计时创建的 TeeChart。只要查询返回一些记录,这一切都有效。但是,如果没有请求日期的记录,我会收到一条EDatabaseError
异常消息:
qryGrpahRuntime:字段“DeviceTotal”的类型不匹配,预期:LargeInt 实际:Widestring
我已经在网上搜索了大量关于如何防止在空查询中出现此错误的解决方案,但我发现的任何东西都没有运气。据我所知,当没有数据返回时,SQLite 默认为宽字符串字段。我曾尝试在查询中使用 CAST,但似乎没有任何区别。
如果我删除持久字段,则查询将在空返回集上毫无问题地打开。但是,为了在 IDE 中使用 TeeChart 编辑器,看来我需要持久字段。
有没有办法可以使用持久字段进行这项工作,或者我是否必须丢弃持久字段,然后在运行时添加 TeeChart 系列?