Bonjour à tous !
Je suis sur une appli qui permet le transfère des données de certains champs d'une table d'une base de données Source, vers les champs d'une table d'une base de données Destination.
Les bases de données Source et Destination sont inconnues avant le lancement de l'application.
Grosso modo j'ai un bouton "Connecter Source" qui me permet de créer une chaine de connexion puis d'établir la connexion à la base Source.
Ensuite je récupère le nom des tables avec TADOConnection.GetTableNames puis je les insère dans une combobox.
En dessous de cette ComboBox j'ai une ListBox qui contient la liste des champs de la table sélectionnée.
J'ai la même chose côté Destination : Un bouton "Connecter Destination" ensuite remplissage d'une combobox avec le nom des tables, puis une ListBox avec le nom des champs de la table sélectionnée.
Le but étant en fait de sélectionner un champ dans la ListBox Source puis un champs dans la ListBox Destination afin de les "lier".
Après avoir établi les liens on peut lancer le transfert.
Le contenu des champs Source est copié vers les champs Destination.
J'ai joint à ce sujet un screen de ce que j'ai actuellement.
En fait j'avais développé ce truc lors d'un stage. L'entreprise avait besoin de transférer un fichier Excel vers une base de données Access et ils n'y connaissaient rien.
Lorsqu'on cliquait sur "Importer" ça générait une requête du genre :et ça fonctionnait très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Insert Into maTable IN 'c:\MaBase.mdb' Select Champ1, champ2, champ3 from maTable2
Mais j'aurais voulu étendre ce principe et transférer des données simples (texte, valeurs numériques et dates) entre d'autre SGBDR et je me suis aperçu que les syntaxes SQL pouvaient être différentes d'un SGBDR à un autre (notamment lors du transfert de données vers Excel où il faut ajouter des paramètres supplémentaires dans la requête).
Du coup je pense que gérer les connexions et les données serait plus simple avec les composants ADO 'purs', sans l'utilisation de SQL, vu que les composants ADO permettent de faire abstraction du SGBDR.
Le problème c'est que je suis un peu perdu devant le nombre de composants Ado (surtout que j'ai l'impression que certains peuvent faire la même chose que d'autres) et que je ne sais pas trop lesquels choisir.
L'autre souci concerne le type de données que je ne connais pas à l'avance. En effet, je ne sais pas si champ1 va être de type texte ou de type flottant.
Comment pourrais-je gérer ceci ?
La plupart des documentations que j'ai pu trouver sur ADO concernaient leur utilisation avec des composants de type DBGrid, et où les données et leurs types étaient connus à l'avance (dans le cas d'insertions de données).
Je ne sais pas si ma demande a été claire, je cherche quelques pistes (composants, méthodes à appeler...etc...).
Merci d'avance pour vos éclaircissements
Partager