Bonjour,
J'ai mes tables SQL server 2000:
Order(OrderID, ...) OrderDetails(odID, OrderID, ...) OrderDocuments(OrderID, DocumentID) Documents(DocumentID, ...)
OrderID c'est moi qui le donne, DocumentID est un int Autoincrement
j'utilise du code VBA pour les remplir. Voilà mes étapes:
1)insert in order
2) insert in Order details
3) insert in Documents
3.1) select ID du document inséré
4) insert In Order Documents
MAIS, si je met un 'begin' tout au début, un 'commit' tout à la fin et un 'rollback' en cas d'erreur: au point 2) j'ai un ODBC error et au point 3.1) aussi!
Je pense que au point 2) c'est à cause de l'ID pas encore committé dans 'Order'. Pour le 3.1) j'imagine que je ne peux pas lire l'enregistrement pas committé..
je suis alors obligée de faire:
begin
1)insert in order
commit
begin
2) insert in Order details
3) insert in Documents
commit
begin
3.1) select ID du document inséré
4) insert In Order Documents
commit
MAIS, si j'ai un problème au point 4). Comment faire four faire un rollback général?? Je suis obligée de faire des Delete sur les tables déjà committées?
Ou il existe une autre façon de faire bien plus simple?
Merci pour toute idée!
Partager