使用数据适配器时,输出参数与更新CASCADE问题一起使用

时间:2011-05-11 16:22:04

标签: .net-4.0 oracle10g cascade dataadapter rowstate

我手动创建了一些数据适配器 - 由于版本不兼容,使用自动生成的数据适配器不可行,对于由多个表组成的数据集,通常混合了PK,FK约束。到目前为止,它的大部分工作都相当顺利,但在修改了适配器以使用数据库中的数据集的数据库(而不是分配给数据集中的行的临时数据库)时,我更新了数据库遇到问题。

我将序列添加到insert语句中并将PK参数更改为输出参数,以便更新数据集行,从而更新所有子行(使用UPDATE CASCADE规则)。问题是,在更新之前添加了行状态的子行被更改为修改状态(我不同意甚至应该发生这种情况,确定添加的行应该保持添加,即使它是改性!)。因此,当我们使用子行更新子表时,它会因为具有添加状态的预期行而失败。

我能解决这个问题的最简洁方法是什么?我能想到的潜在解决方案:

  • 关闭UPDATE CASCADE并手动更新每个子行,更新父PK后,修改后将每行更改回添加。
  • 在开始更新之前,在数据集的所有表中创建所有添加的行的副本,然后在每个表更新后更新主副本,将所有正确的行标记回添加。

有更好的想法吗?

0 个答案:

没有答案