いくつかのデータ アダプターを手動で作成しました。バージョンの非互換性のため、自動生成されたものを使用することはできません。通常、PK と FK の制約が混在している多数のテーブルで構成されるデータセットの場合です。これまでのところ、そのほとんどは非常にスムーズに機能していますが、新しい「追加された」行で DB を更新するときに、(データセット内の行に割り当てられた一時的なものではなく) PK に DB シーケンスを使用するようにアダプターを変更した後、私は打撃の問題。
シーケンスを挿入ステートメントに追加し、PK パラメーターを出力パラメーターに変更して、データセット行を更新し、すべての子行も更新するようにしました (UPDATE CASCADE ルールを使用)。問題は、更新前に行の状態が追加されていた子行が、変更された状態に変更されることです (これが起こっていることに同意しません。追加された行は、たとえそれが変更されました!)。したがって、子テーブルを子行で更新しようとすると、追加された状態の行が期待されるため失敗します。
この問題を回避できる最もクリーンな方法は何ですか? 私が考えることができる潜在的な解決策:
- UPDATE CASCADE をオフにし、各子行を手動で更新した後、親 PK を更新し、各行を変更した後に追加済みに戻します。
- 更新を開始する前に、データセットのすべてのテーブルに追加されたすべての行のコピーを作成し、各テーブルの更新後にメイン コピーを更新して、すべての正しい行を追加済みに戻します。
より良いアイデアはありますか?