|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2007 Messages : 46 ![]() |
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 |
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Peux-tu éliminer les doubles de ta source une fois les données importés ?
Ou peut-être ne pas importer les doubles en mettant un index unique sur la table d'import ? Ou encore mettre un index unique sur ta table de destination qui va 'recracher' les doublons ? A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juillet 2007 Messages : 46 ![]() |
J'ai procédé un peu autrement ne voulant pas jouer avec les index ..
Je stocke en mémoire les dossiers crées et au moment d'en insérer un nouveau, je vérifie que sa référence n'est pas déjà présente en mémoire.. |
|
|
00
|
|
|
#4 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 470 ![]() |
Bonne idée si tu n'as pas trop de dossier en même temps.
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com