lundi, septembre 10, 2007

Créer la database sur MySQL avec WinDev, WebDev

N'ayant pas trouvé comment créer la database MySQL avec l'accès natif, je me suis reporté sur la connexion ODBC
Lors de la connexion avec l'accès natif, il faut préciser le nom de la base. Il est donc necessaire d'utiliser PHPMyAdmin ou SQLylog pour créer la base.
Je souhaitais créer par programmation la database puis lancer le script des tables.

La fonction SQLConnecte permet d'effectuer ce traitement si on utilise la connexion ODBC.

Voici le code permettant de créer la database :

id est un entier = SQLConnecte("MysqlODBC","root","mdp","","ODBC ",hODBC)
SI id <> 0 ALORS
sNomDatabase est une chaîne = "Database"
// création de la base de données
sSql est une chaîne = "CREATE DATABASE IF NOT EXISTS %1"
sSql = ChaîneConstruit(ssql,sNomDatabase)
// execution de la requête
SI PAS SQLExec(ssql,"REQ") ALORS
SQLInfoGene()
Erreur("La Database n'a pas pu être créée. Code erreur : " + SQL.Erreur +RC+...
SQL.MesErreur)
FIN
SINON
// La connexion a échoué : affichage d'un message explicatif
SQLInfoGene()
Erreur("La connexion à la source de données" + "localhost" + ...
"a échoué."+RC+...
"Code erreur : " + SQL.Erreur +RC+...
SQL.MesErreur)
FIN
// Dans tous les cas (connexion OK ou pas)
SQLDéconnecte()

Ensuite on peut utiliser les fonctions "H*" avec l'accès natif MySQL.
Un peut contraignant, car il faut le drivers ODBC d'installé sur le poste.

3 commentaires:

Anonyme a dit…

J'utilise l'accès natif mysql au quotidien et je crée les tables à la volée depuis windev ou webdev. Il y a 2 prérequis pour que ça marche correctement:
- la bdd doit exister
- dans le code d'initialisation du projet on doit trouver pour chaque table à créer une ligne du type HCreationSiInnexistant
Olivier.

progwdm a dit…

Justement, le but de ce billet est de créer la base. Puisque avec l'accès natif il faut que la bdd existe.
L'odbc ne demande pas de prérequis. La base peut donc être créer puis utiliser l'accès natif pour le reste (création table, requête, etc..)

progwdm a dit…

la libMySQL.dll est la couche cliente MySQL indispensable pour utiliser l'acces natif. Cette dll est fourni avec l'installation d'une base MySQL. attention ne pas utiliser WAMP ou EasyPHP.
Mettre cette dll dans le répertoire programme de Windev. Vérifiez dans l'aide en ligne de WinDev les viersions de MySQL supportée. Il me semble, de me mémoire que c'est à partir de la 4.2.x.