首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi2009,MyDAC和关系数据库

Delphi2009,MyDAC和关系数据库
EN

Stack Overflow用户
提问于 2009-05-24 15:26:02
回答 3查看 1.8K关注 0票数 2

在Delphi2009与MyDAC的关系数据库概念的使用方面,我有一个相当大的问题。

我有一个数据库结构,它看起来有点像下面的内容:

项目

  • name

  • id

存储

  • id
  • name

StorageItem

  • id
  • item_id
  • storage_id
  • place

现在,当我拥有来自"Item“的活动数据集时,如何在例如DBGrid中显示所有相关的存储?

顺便问一句:不是在每个表中使用"id“更好,而是修改它并使用类似"id_item”或"id_storage“之类的东西吗?

(预先谢谢:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-24 16:41:21

代码语言:javascript
复制
Select a.ID, b.Name, a.Place
from StorageItem a
inner join Storage b
on (a.id = b.id)

上面的查询将返回带有名称的StorageItem表中的所有项,如果您希望筛选它,只返回特定项的项,添加where子句如下

代码语言:javascript
复制
Select a.ID, b.Name, a.Place
from StorageItem a
inner join Storage b
on (a.id = b.id)
where a.item_id = 1 -- place the item id here

您可以在where中使用参数,例如:

代码语言:javascript
复制
MyQuery.Sql.Text := ' Select a.ID, b.Name, a.Place from StorageItem a
+ ' inner join Storage b on (a.id = b.id) '
+ ' where a.item_id = :ItemNo ';
MyQuery.ParamByName('ItemNo').asInteger := 1;
MyQuery.Open;

并将上面的查询分配给dbGrid

此外,您还可以使用MasterSource属性来生成关系,而无需使用"where“部分

票数 1
EN

Stack Overflow用户

发布于 2009-05-24 16:33:30

  • 和StorageItem一起创建了一个

多到多的关系。如果你

只需要一对多(许多存储与一个项目相关,但您

反之亦然),那么您只需将另一个字段添加到存储表(item_id)中,这将是项表的外键。然后在存储表中创建item_id索引,并将两个表连接到

主细节relationship.

  • If您确实需要很多到多个,然后您可以使用SQL添加一个查询组件。

(从StorageItem中选择*

item_id := :current_storage_id),而current_storage_id是查询的

参数.

票数 2
EN

Stack Overflow用户

发布于 2009-05-24 16:30:38

我个人并不熟悉MyDAC,但是大多数dataset组件都有一些方法来建立主细节关系。检查数据集中是否有MasterSource属性,或将详细数据集链接到主数据集的类似方法。如果没有,则可以使用TDatasetField建立链接,并筛选嵌套数据集以仅显示正确的记录。

至于ID列名,为每个字段提供一个描述性名称是个好主意,因此您可以通过查看代码来判断您的链接是否正确。如果您调用id列" id ",则可能是任意id列,如果开始传递对数据集的引用,则可能会引起混淆。但是,如果每次都被称为item_id (有时不是item_id,有时是id_item ),那么您总是知道自己在看什么。这样就可以更容易地知道您的代码也是正确的。写着"master.item_id = detail.item_id“的过滤器更容易读懂"master.id = detail.item_id”。例如,如果将master分配给错误的数据集,则这可能是错误的,并且失败。

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

https://stackoverflow.com/questions/903993

复制
相关文章

相似问题

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