2016-03-07 4 views
0

J'ai une fonctionnalité où les données de l'interface utilisateur doivent être insérées dans deux schémas de base de données dans Oracle. Il y a près de 10 tables où les données doivent être ajoutées. Est-il possible de maintenir l'intégrité des données (cohérence des données dans les deux schémas) en ajoutant toutes les données à la base de données ou en supprimant les données nouvellement ajoutées de toutes les tables des deux bases de données. Je n'ai pas commencé à coder, je voulais juste savoir si nous avions une bonne approche pour mettre en œuvre la même chose.Comment implémenter l'intégrité des données tout en ajoutant des données à deux bases de données dans Oracle

Répondre

0

Vous devez utiliser une transaction si vous ne voulez pas contrôler le résultat de toutes les insertions. Il y a plusieurs façons de résoudre cela, mais vous pourriez probablement créer simplement une instance d'un objet OracleTransaction, appeler un "begin", exécuter votre code puis à la fin vous pouvez valider ou restaurer. L'autre méthode utilise un .net System.Transactions.TransactionScope (ce qui est mieux) mais nécessite que vous installiez d'autres composants Oracle. Ce dernier est utile si vous écrivez dans plusieurs bases de données (Oracle et SQL Server) et que vous souhaitez conserver l'intégrité.

OracleConnection _cn = new OracleConnection(); 
OracleTransaction _trn = _cn.BeginTransaction(); 

// command 1 
OracleCommand _cmd = new OracleCommand(); 
_cmd.Transaction = _trn; 

// command 2, 3, etc 

if (!error) { 
    _trn.Commit(); 
} else { 
    _trn.Rollback(); 
} 

Ce code n'est évidemment pas complet, juste pour vous donner une idée de la structure.