Accès natif MySQL : Bug de hCréationSiInexistant(« * »)

En version 16 (autres versions à tester), la fonction hCréationSiInexistant(« * »)fonctionne bien si la base MySQL est vide (aucune table).

Par contre, si il ne manque qu’une ou plusieurs tables dans une base existante, WinDev ne les crée pas automatiquement.

Pour contourner ce petit bug, nous vous proposons une fonction qui fera le travail à la place de hCreationSiInexistant (à noter que la fonction remplit bien son rôle si on l’appelle en spécifiant un nom de table particulier).

La fonction pg_CreeBase() récupère la liste des tables de l’analyse en cours et lance un hCreationSiInexistant(Table)

//Création si nécessaire des fichiers de la base (hCreationSiInexistant("*")
//fonctionne mal avec MySql)

//Valeur de retour : Chaine vide "" si pas d'erreur ou
//Liste des erreurs rencontrées lors de la création des tables

PROCEDURE pg_CreeBase()

lc_Tables, lc_Table est chaîne

lc_Erreur est chaîne

lc_Tables = HListeFichier()

POUR TOUTE CHAINE lc_Table DE lc_Tables SEPAREE PAR CRLF

QUAND EXCEPTION DANS

SI PAS HCréationSiInexistant(lc_Table) ALORS

lc_Erreur += [CRLF] + lc_Table + TAB + Remplace(HErreurInfo(), CRLF, TAB)

FIN

FAIRE

lc_Erreur += [CRLF] + lc_Table + TAB + Remplace(HErreurInfo(), CRLF, TAB)

ExceptionActive()

FIN

FIN

RENVOYER lc_Erreur

Les commentaires sont fermés.