Deleting rows in joined tables using ADO现在,我在另一个论坛上看到了这个问题,但没有一个可接受的答案。 假设我有两个表,Groups表和Elements表。这些表没有定义的关系。 Elements表具有一个IdGroup字段,该字段引用Groups表的IdGroup(PK)字段。 我通过ADO记录集使用以下查询来将表值填充到datagrid中:
从该网格中,我想按Delete键以删除元素。这是我的问题。当我使用DAO时,DAO Delete()函数仅删除Elements组中的记录。这是预期的行为。 当我更改为ADO时,Delete()函数删除了两个表,元素记录和元素所属的组中的记录! 有什么方法可以在ADO中重现DAO行为,而不必在表中定义关系? 注意:我知道还有其他选择(执行DELETE查询可以完成此工作)。只是向我展示一种在ADO中执行此操作的方法,或者说它无法完成。 将查询重写为:
例:
我已经使用SQL Server 2008进行了测试,并将ADO记录集设置为Microsoft OLEDB Datagrid Control(MSDATGRD.OCX)的DataSource属性,然后通过网格删除了行(我假设您正在做类似的事情),并且该行的确是 仅从表元素中删除(即,"组"中的行保持未删除状态)。 请注意,修改后的查询在获取行时可能会对性能产生负面影响。 |