Bsr,
Voila mon problème..
Je dois créer des dossiers dans une table à partir d'une table temporaire qui a été alimenté par un import de fichier.
Je lis donc tous les dossiers de ma table temporaire et s'ils sont conformes je les insère un a un en utilisant une transaction : si un dossier n'est pas conforme, je rejète la totalité du fichier en faisant un rollback... en fin de traitement si tous les dossiers sont conformes je fais un commit.
Mon souci est que dans le fichier d'entrée je peux avoir des dossiers en double que je ne veux pas créer deux fois le même dossier sans pour autant rejeter le fichier dans sa totalité .. Pour se faire j'avais pensé effectuer une vérification préalable d'existence de dossier et rejeter (ne pas insérer) le dossier s'il était déjà présent en base.. mon souci c'est que comme j'utilise une transaction, les dossiers du fichier préalablement crées ne sont pas encore présent en table .. ils sont quelque part dans un buffer en attendant d'être entérinés ou rejetés .. comment faire simple pour contourner cette contrainte ? j'ai bien pensé garder en mémoire les dossiers préalablement crées mais cela me semble un peu lourd .. ou alors trier mes enregistrements d'entrée sur le N° dossier de façon a ce que lorsque je traite un dossier, je peux connaître assez facilement le dernier dossier traité et ne pas l'insérer à nouveau s'il est présent plusieurs fois ..
J'imagine que cette problématique doit être assez courante ..Il y a t-il un moyen de connaitre les enregistrements en attente de validation dans une transaction ?
Merci pour vos suggestions ou solutions de contournement...
Laurent
Partager