首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在delphi 7中使用unidac时计算的字段为空

在delphi 7中使用unidac时计算的字段为空
EN

Stack Overflow用户
提问于 2015-04-28 20:25:47
回答 1查看 309关注 0票数 1

我在一个Delphi 7项目中使用unidac组件连接到一个SQLite数据库。连接和查询工作良好,但计算字段除外。

我的疑问是:

代码语言:javascript
复制
select  c.CardID,
    c.FirstName,
    c.SurName,
    c.Street,
    c.City,
    c.PostCode,
    c.Points,
    (select count(1) from FullCard f where f.CardID = c.CardID and f.Paid = 1) as PaidCards,
    (select count(1) from FullCard f where f.CardID = c.CardID and f.Paid = 0) as OpenCards,
    (select count(1) from FullCard f where f.CardID = c.CardID) as FullCards
from    Card c

当我在SQLiteStudio中运行它时,这个查询返回一个正确的结果集,但是当我在delphi中运行它时,计算出来的字段都是空的。

unidac版本为Delphi 7的5.0.1。

我有一个UniConnection组件和一个UniQuery组件。连接属性似乎是正确的,因为我可以从数据库连接和查询。

UniQuery组件具有上面的查询填充的SQL属性,所有字段都是持久化的。

当我执行UniQuery1时,打开一个包含所有记录的DBGrid,但是字段PaidCards、OpenCards和FullCards都是空的。

在SQLiteStudio中执行这些字段时,相同的查询确实会返回正确填充的这些字段,所以我想查询本身没有什么问题。

我希望其他人也遇到了同样的问题,并能为我指出解决这个问题的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-04 17:59:15

此错误的解决方法是不使用持久字段。当我不创建持久化字段时,所有字段都会被正确填充,并且一切都很完美。只有失败,我必须在代码中使用query1.FieldByName('FirstName').asString而不是query1FirstName.asString。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29929245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档