当前位置: 首页 > 面试题库 >

从联接表中删除ADODataSet

郗阳德
2023-03-14
问题内容

我有一个Delphi应用程序,其中显示了像这样的查询已玩过的游戏的列表:

select  g.*, gt.id, gt.descr 
from GAMES g 
inner join game_types gt on gt.id = g.game_type
order by game_date DESC

当我单击DBNavigator中的删除按钮时,也会删除game_types表中的联接记录。这是一个问题,因为许多其他游戏可以是同一类型。

我需要做些什么才能删除游戏,而不删除游戏类型?


问题答案:

您需要使用“唯一表”动态属性

ADOQuery1.Properties['Unique Table'].Value := 'GAMES';

从MSDN ADO文档

如果设置了“唯一表”动态属性,并且Recordset是对多个表执行JOIN操作的结果,则Delete方法将仅从“唯一表”属性中命名的表中删除行。



 类似资料:
  • 问题内容: 我试图根据另一个数据库的选择标准从一个数据库中删除记录。我们有两个表,emailNotification,用于存储作业和电子邮件列表。然后我们有工作。我想清除已关闭作业的emailNotifications。我在Stackoverflow上找到了一些较早的示例,这些示例将我带到了这种语法类型(我以前曾尝试在where之前进行连接)。 我收到错误消息,您无法在FROM子句中指定目标表’e

  • 我在删除联接表中引用的实体时遇到问题。以下是三个链接的enitie。 当我尝试使用CrudRepository从来宾表中删除来宾时,它会给我这个错误。 错误:表“guest”上的更新或删除违反了表“guest\u group\u join”上的外键约束“FKKOUGVMCU860MOUACR1SHJXY”。键(id)=(4)仍然从表“guest\u group\u join”中引用。 有人能帮忙吗

  • 问题内容: 我有两个表来包含国家/地区的州(state_table)和城市(city_table) 城市表具有state_id以便将其与state_table相关联 两个表中已经有数据。 现在的问题 城市表包含一个州内一个城市的多个条目。另一个城市可能也可能没有相同的城市名称 例如:cityone将在city表中使用stateone出现5次,使用statetwo出现2次 那么,我将如何编写查询以为

  • 这是我定义邻接列表的方式:

  • 我有两个多对多关联的表。 DB详细信息:用户-->列[Id,name]

  • 我得到以下异常: 关于这个案子有什么建议吗?