Il y à quelques jours, j’ai testé l’accès natif MARIADB sur un poste avec Windows 10 64 Bits installé.
Nous allons donc voir ici comment cela se passe, et les pièges à éviter.
1) Télécharger et installer l’accès natif :
La première chose à faire, est de récupérer l’accès natif bien caché sur le site de PCSOFT. Heureusement pour le trouver, je saisis directement dans google « Windev MariaDB accès natif « , et cela me donne un lien plus direct, que je vous donne ici :
https://www.pcsoft.fr/connecteurs-natifs/mariadb.htm
Je télécharge donc pour la part le fichier WX230PACKMARIADB029b.exe, qui dans mon cas est le dernier installeur en date disponible pour la version du moment (Windev V23).
Rien de sorcier pour l’installation, il suffit d’exécuter ce fichier et de cliquer sur [Mettre à Jour].
2) Récupérer la DLL MariaDB :
Le connecteur natif MariaDB de PC SOFT repose sur une DLL qui n’est pas fournie lors de cette installation. Il va donc falloir la trouver quelque part, et plus précisément dans MariaDB que l’on va installer en local pour l’occasion.
Selon que vous développez en 32 bits ou 64 bits vous n’aurez pas forcément besoin de la même DLL. Il vous faudra choisir d’installer soit mariadb 32 bits, soit mariadb 64 bits, en local sur votre machine :
https://downloads.mariadb.org
Cette installation peut être temporaire, juste le temps de récupérer la dll, de la copier, et vous pouvez désinstaller le produit par la suite (je n’ai pas testé, mais normalement rien d’autre n’est utilisé par PCSOFT que la DLL). Ceci dit, avant d’en arriver là, je peux profiter du logiciel HeidiSQL qui est installé dans la foulée, et me permet de tester la connexion directe avec une base MariaDB, indépendamment des outils de PCSOFT, si jamais je devais identifier la source d’un problème de connexion en procédant par élimination.
La DLL se trouve dans le sous répertoire : Program Files\<MariaDB>\LIB\
3.1) Placer la DLL au bon endroit pour le développement :
Dans le cas de figure ci-dessus, j’ai placé, comme indiqué dans la documentation PCSOFT, la version 64bits de la DLL dans le sous répertoire de Windev qui s’intitule Programmes\Framework\Win64x86
Attention : Si le fichier n’est pas au bon emplacement, vous risquez de voir apparaître une erreur 27 :
« Aucune bibliothèque d’accès à MariaDB n’a été trouvée » |
3.2) Ou mettre la DLL chez le client :
Après génération de l’exécutable, il est important de fournir cette dll avec votre produit, donc faites en sorte que ce fichier soit présent dans le même répertoire que l’exécutable, tout simplement.
Des informations complémentaires se trouvent sur cette page officielle de documentation PCSOFT :
Connecteur Natif MariaDB pour WINDEV et WEBDEV
4) Créer une base de données :
Je pars du principe ici que vous savez utiliser MariaDB/MySQL et que vous avez déjà accès à la page PhpMyAdmin, de votre serveur Web, ou bien que vous savez vous connecter au serveur MariaDB via un autre outil, tel HeidiSQL dont j’ai parlé plus haut.
Créez donc une base de données à vide ‘test’, pour la part que j’ai défini arbitrairement en utf8_general_ci, et de type InnoDB (conseillé pour l’usage du connecteur Natif). Cette opération se fait par exemple dans votre phpMyAdmin.
5) Créer un utilisateur spécifique et lui définir les droits d’accès :
En fonction de la configuration du serveur web et de mariaDB, il se peut que vous n’ayez pas les droits d’accès root à distance, et donc que vous ne puissiez pas vous connecter en root depuis votre applicatif Windev. Par conséquent créez bien un utilisateur spécifique ‘windevuser’, par exemple auquel vous devez attribuer tous les privilèges nécessaires sur la base considérée.
Rubrique « Privilèges / Comptes d’utilisateurs » de phpMyAdmin |
N’oubliez pas non plus de définir que votre utilisateur peut se connecter depuis n’importe quelle machine (utile pendant la phase de développement, au prix d’une sécurité moins grande), via le symbole ‘%’ (pourcent), comme suit, dans l’onglet [Information pour la connexion] de la fiche utilisateur :
Si vous tentez de vous connecter à un compte mariaDB non autorisé, vous aurez probablement l’erreur 79, comme suit :
6) créer une Analyse et se connecter à la base
– vous avez créé une base vierge de test
– vous avez créé un nouveau projet vierge windev ou webdev
– créez maintenant une analyse avec les options suivantes :
puis :
puis :
et le nom du serveur :
Note : si votre serveur n’est pas trouvé, vous pourriez avoir un problème de configuration de DNS, dans ce cas saisissez directement l’adresse IP de votre serveur MariaDB en dur, ou bien localhost (ou encore 127.0.0.1 (qui en est l’équivalent numérique), si vous comptez stocker aussi vos bases dans le mariaDB sur la machine locale avec laquelle vous comptez développer.
Une astuce que j’ai trouvée pour que le nom d’un poste soit reconnu, lorsque je connais l’IP fixe de mon serveur, est de trafiquer le fichier C:\Windows\System32\Drivers\etc\hosts et ajouter une ligne pour préciser un nouveau couple <adresse ip> <nom de domaine>. Dès lors Windows fera la correspondance, et Windev pourra se connecter plus facilement au serveur par son nom (une astuce à réserver au poste de développement, tout de même);
7) Préciser le Port IP du Serveur MariaDB, s’il n’est pas standard :
Attention,
si le port de MariaDB/MySQL n’est pas le standard 3306, n’oubliez pas de préciser le port spécifique dans votre chaîne connexion. Dans ce cas, revenez dans Windev=>Analyse=>Connexions, et spécifiez dans l’onglet [Avancé] les Infos Étendues comme suit (chaque paramètre est séparé par un point-virgule, s’il y en a déjà d’autres :
Ici on précise le port 3307, car c’est sur ce port que le serveur mariaDB est à l’écoute dans ce cas précis |
De même lorsque vous vous connecterez aux mêmes bases via WDMAP ou CCHFSQL, n’oubliez pas de préciser ce paramètre si nécessaire (c’est à dire si vous avez l’erreur 79 à la connexion ) :
Créer des fichiers de données dans l’analyse :
Je crée un nouveau fichier de données de type MariaDB, je clique sur « génération », mais il ne se passe pas grand chose.
Nous allons donc forcer la création des fichiers de données dans mariaDB par code, avec un HCreationSiInexistant(), via une connexion par code, dans le code d’initialisation du projet de Windev.
Je vous rappelle au passage que pour accéder au code d’intialisation d’un projet, il faut cliquer avec le bouton droit de la souris sur le petit [P] de projet, qui est en bas a gauche de l’interface de Windev comme suit :
Voici le code qui permet d’accéder à la base distante, et d’assurer que toutes les tables de la base sont créées :
Et voilà vous pouvez travailler à peu près comme avec HFSQL sur des fichiers de mariaDB.
Vous pouvez utiliser l’alternative SQLConnecte() comme indiqué sur le site de PCSOFT, mais je ne détaillerai pas plus, je voue renvoie à la documentation officielle à ce sujet :
https://doc.pcsoft.fr/?1000021529
La méthodologie est similaire avec MYSQL, puisque les deux systèmes sont issus du même code à l’origine, et partagent un haut degré de compatibilité. Ceci dit, il existe un connecteur spécifique Natif pour mySQL fourni par PCSOFT, et les noms de fichiers à installer sont donc différents.
Merci d’avoir pris le temps de partage votre savoir.
il me manquait juste la DLL de MariaDB à mettre dans le répertoire windev.
Pour infos, on peut très bien créér la table directement dans PhpMyAdmin et la récupérer depuis l’analyse.