我正在步履蹒跚地进入DB aware控件(有什么好的教程吗?)
我有一个包含6列的MySql表,并设法将其加载到TDbGrid中。
但是,其中一列是到另一个表的索引。这是一个条形码,而不是显示它,我想显示与它相关的产品名称。
我该怎么做?
(我可以隐藏“间隔”吗?)左下角哪一行显示当前行?)
谢谢
发布于 2012-10-12 18:40:02
您应该始终从SQL端执行连接,这比以编程方式执行连接容易得多
例如:
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。
发布于 2012-10-12 18:38:30
使用查询而不是表。然后,使用连接来选择产品名称,如下所示:
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,可以隐藏间距。
发布于 2012-10-12 19:24:15
仅供记录:对于像Paradox和DBF这样的ISAM数据库,典型的解决方案将是所谓的master-detail tables relations,它仍然可能适用于SQL。虽然这将是非常低效和缓慢的。你肯定读过一些关于SQL的书。
https://stackoverflow.com/questions/12857151
复制相似问题