Voilà, je vous explique mon problème:
je dois faire une application jetable en windows form pour effectuer une reprise de donnée (d'un ancien système, vers un nouvelle IHM ASP.NET).
Le base de donnée sur laquelle se fait la reprise est SQL Server 2000.
Les données de l'ancienne application nous sont fournies sous forme de fichiers texte avec séparateur "|" (et je n'ai pas d'autres choix).
Il y aura un fichier, par table à alimenter, dans ma base de donnée, et ils respectent le mapping des tables que je dois alimenter (Ca c'est plutôt cool).
J'aurai quand même quelques contrôles (format des données, contraintes de non nullité, d'unicité....) et des conversions de données à effectuer, avant d'injecter ces nouvelles données dans ma bases.
J'ai également des contraintes de temps à respecter: cette reprise de donnée ne devra pas dépasser une journée, malgrés les volumes important sur certaines tables.
Mon idées était pour chaque fichier (qui représente les données pour une table):
1) de lire mon fichiers ligne par ligne (grâce à une moulinette,qui me pemettra, de splitter mes données)
2) d'effectuer les contrôles et les convertions sur mes données
3) d'alimenter un dataset qui aura la structure de ma table et sera lié à un DataAdapter (jutiliserai une requête SELECT qui ne me retournera rien, mais me permettra de lier mon DataSet au DataAdapter)
4) une fois le fichier lu en entier et le dataset chargé, je mettrai la table à jour dans ma base grâce à la commande Update du DataAdapter auquel est lié mon DataSet.
En effet, vu le volume des données, je ne veux pas faire un aller-retour en base chaque fois que je dois insérer une nouvelle ligne dans une table.... J'vais y passer des plombes.
Mon souci c'est que j'ai peur que le DataSet ne supporte pas le volume des données.
Et j'ai un peu peur que cette méthode soit une vrai catastrophe, malgrés tout, en terme de performances.
Si l'appel à une procédure Stockée me permettait de passer un tableau de données en paramètre, c'est ce que j'utiliserai pour faire un insert global dans ma table (une fois toutes les manipulations sur les données effectuées), mais ce n'est pas le cas.
J'ai lu que la version 2005 de SQL Server permet désormais de passer un flux XML en paramètre, mais moi je travaille sur la version SQL Server 2000.
J'ai déjà beaucoup parcouru le forum et le Net à la recherche d'une solution optimale, mais à force de lire des opinions complètement différentes les unes des autres (et surtout sur des sujets qui ne collent pas exactement à mon pb), j'avoue que j'aurais besoin de votre aide!!
Vous avez des idées sur la question?
Merki d'avance!!![]()
Partager