Cet exemple montre comment copier le contenu d’une table d’une base MySQL vers une autre table d’une autre base MySQL de deux serveurs distincts en utilisant Windev.
Les instructions clés
Variable de type Connexion
Dans l’ordre d’utilisation, il faudra d’abord déclarer des variables de type « Connexion » pour se connecter aux deux bases se trouvant sur deux serveurs distincts. Le type Connexion permet de décrire par programmation une connexion à une base de données externe.
On renseignera les propriétés :
- Serveur (nom ou adresse ip)
- BaseDeDonnées
- Utilisateur (sans préciser le host)
- MotDePasse
- Provider (pour indiquer le type de connexion, ici hAccèsNatifMySQL pour MySQL)
Instruction HOuvreConnexion
Ouvre une connexion à une base de données spécifique. La connexion reste ouverte jusqu’à l’appel de la fonction HFermeConnexion.
<Résultat> = HOuvreConnexion(<Nom de la connexion>)
La fonction renvoie « Vrai » si la connexion a été ouverte avec succès, « Faux » dans le cas contraire. La fonction HErreurInfo permet d’identifier l’éventuelle erreur.
Instruction HDéclareExterne
Importe temporairement dans l’analyse en cours, la description d’un fichier de données existant et ouvre le fichier de données. Pour ne plus utiliser cette description de fichier de données, utilisez la fonction HAnnuleDéclaration.
<Résultat> = HDéclareExterne(<Nom du fichier> , <Nom alias> , <Nom de la connexion>)
Le nom de table est donné entre guillemets.
L’alias est le nom donné à cette table dans l’analyse.
La connexion est celle par laquelle on accède à la table à déclarer.
La fonction renvoie « Vrai » si la déclaration a été faite avec succès, « Faux » dans le cas contraire. La fonction HErreurInfo permet d’identifier l’éventuelle erreur.
Instruction HCopieEnreg
Copie l’enregistrement de la source vers la destination. Le fichier de données d’origine et le fichier de données destination n’ont pas obligatoirement la même structure. Seules les données mémorisées du fichier de données destination sont modifiées. Le fichier de données destination ne sera modifié qu’à la sauvegarde de l’enregistrement en cours, ici en utilisant HAjoute.
<Résultat> = HCopieEnreg(<Nom du fichier Destination>, <Nom du fichier Source>)
Les noms des fichiers source et destination seront dans notre cas les alias des tables source et destination définis par HDéclareExterne.
La fonction renvoie « Vrai » si la copie a été faite avec succès, « Faux » dans le cas contraire. La fonction HErreur permet d’identifier l’éventuelle erreur.
Le code exemple
Le code ci-dessous est fourni à titre d’exemple. Pour une réelle utilisation, il faudrait vérifier la bonne exécution de chaque instruction et traiter les erreurs éventuelles.