从连接表中删除ADODataSet



我有一个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中的delete按钮时,game_type表中的连接记录也被删除。这是一个问题,因为许多其他游戏可能是相同类型的。

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

您需要使用Unique Table动态属性

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

来自MSDN ADO文档

如果设置了唯一表动态属性,并且记录集是在多个表上执行JOIN操作的结果,然后方法将只从Unique中指定的表中删除行表属性。

您需要在打开数据集后设置TADODataset的"Unique Table"属性。

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

最新更新