首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整TDbGrid

调整TDbGrid
EN

Stack Overflow用户
提问于 2012-10-12 18:32:02
回答 4查看 366关注 0票数 0

我正在步履蹒跚地进入DB aware控件(有什么好的教程吗?)

我有一个包含6列的MySql表,并设法将其加载到TDbGrid中。

但是,其中一列是到另一个表的索引。这是一个条形码,而不是显示它,我想显示与它相关的产品名称。

我该怎么做?

(我可以隐藏“间隔”吗?)左下角哪一行显示当前行?)

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-12 18:40:02

您应该始终从SQL端执行连接,这比以编程方式执行连接容易得多

例如:

代码语言:javascript
复制
SELECT mytable.id, mytable.column1, another_table.barcode
FROM mytable
JOIN another_table ON another_table.id = mytable.barcode_id

要删除间隔,您需要在选项中取消选中DBGrid属性dgIndicator

至于“DB感知控件”,你应该试试delphi help。

票数 4
EN

Stack Overflow用户

发布于 2012-10-12 18:38:30

使用查询而不是表。然后,使用连接来选择产品名称,如下所示:

代码语言:javascript
复制
SELECT
  t.*,
  p.name
FROM
  YourTable t
  INNER JOIN Product p on p.barcode = t.barcode

我使用t.*,因为我不知道确切的列。实际上,我不会使用select *,而是指定特定的列。如果无论如何都要使用*,则可以通过将dataset/查询中TField对象的Visible属性设置为False来隐藏特定的列。

我不知道您使用了哪些组件来连接表,但大多数组件都有一个查询对等项,允许您插入SQL而不是表名。

通过转到对象检查器中的属性Options,将其展开,然后将dgIndicator设置为False,可以隐藏间距。

票数 2
EN

Stack Overflow用户

发布于 2012-10-12 19:24:15

仅供记录:对于像Paradox和DBF这样的ISAM数据库,典型的解决方案将是所谓的master-detail tables relations,它仍然可能适用于SQL。虽然这将是非常低效和缓慢的。你肯定读过一些关于SQL的书。

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

https://stackoverflow.com/questions/12857151

复制
相关文章

相似问题

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