FAQ n°19548, publiée le 12/03/2015
WINDEV
Que faire si l'accès à une base MySQL échoue après un certain temps d'utilisation ?
Il a été observé sur certaines configurations, un échec de l'exécution de requêtes sur une base MySQL après un temps d'exécution important sans redémarrage. Dans ce cas le mécanisme de sécurité du WLangage retourne : 

Numéro d'erreur = 78
Echec de l'initialisation de la couche client.

Ou :

Problème d'allocation objet MySQL
Ressource mémoire disponibles insuffisants pour traiter cette commande

Les investigations menées montrent que le client MySQL (libmysql.dll en version 5.x ou 6.x) peut échouer lors de son chargement ou de son initialisation, si un même processus l'a instancié de façon continue.

Dans ce cas afin de conserver la possibilité d'interroger la base MySQL sans limite de temps depuis un même processus, il faut forcer un chargement explicite du client MySQL dès le début du projet, sans le libérer par la suite, sauf à la terminaison complète de l'application. L'appel suivant doit donc être effectué au tout début du projet, avant le premier accès à la base : 

sDllMySQL est une chaîne="LibMySQL.DLL"
nInstanceMySQL est un entier =ChargeDLL(sDllMySQL)
 
SI nInstanceMySQL=0 ALORS
 FinProgramme("Echec chargement couche client MySQL", ErreurInfo())
FIN