PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD15] Création Database MySQL: qu'est qui cloche????
[WD15] Création Database MySQL: qu'est qui cloche????
Débuté par jpl06530, 18 jan. 2010 10:49 - 7 réponses
Posté le 18 janvier 2010 - 10:49
J'ai un serveur MYSQL qui tourne sur ma machine.

J'ai écrit ce code en m'inspirant de la syntaxe habituelle :

cnxMacnn est une Connexion
sdreq est une Source de Données
sMaChaineSQL est une chaîne

// Paramètres de la connexion
cnxMacnn..Utilisateur = "root"
cnxMacnn..MotDePasse = ""
cnxMacnn..Serveur = "localhost"
cnxMacnn..Provider = hAccèsNatifMySQL
cnxMacnn..Accès = hOLectureEcriture


// Ouverture de la connexion et comptage des enregistrements
monresultat est un entier = HOuvreConnexion(cnxMacnn)
Info(monresultat)
DEJA LA LA CONNECTION NE S'OUVRE PAS ????

sMaChaineSQL = "CREATE DATABASE mabddmysql"

si HExécuteRequêteSQL(sdreq,"cnxMacnn",hRequêteSansCorrection,sMaChaineSQL)alors
INFO("Table crée avec succès")
FIN

HFermeConnexion(cnxMacnn)

Cette syntaxe ne fonctionne pas. J'ai recherché dans l'aide mais je n'ai rien trouvé qui pourrait m'aider.
Est-ce que quelqu'un aurait une idée

Merci à tous
Posté le 18 janvier 2010 - 12:44
A ma connaissance Windev se connecte à une base de données existance...

Donc, je pense qu'il n'est pas possible de lancer un create database
!!!

tu dois le faire avec un logiciel comme navicat ou mysql admin.

ciao



jpl06530 avait soumis l'idée :
J'ai un serveur MYSQL qui tourne sur ma machine.

J'ai écrit ce code en m'inspirant de la syntaxe habituelle :

cnxMacnn est une Connexion
sdreq est une Source de Données
sMaChaineSQL est une chaîne

// Paramètres de la connexion
cnxMacnn..Utilisateur = "root"
cnxMacnn..MotDePasse = ""
cnxMacnn..Serveur = "localhost"
cnxMacnn..Provider = hAccèsNatifMySQL
cnxMacnn..Accès = hOLectureEcriture


// Ouverture de la connexion et comptage des enregistrements
monresultat est un entier = HOuvreConnexion(cnxMacnn)
Info(monresultat)
DEJA LA LA CONNECTION NE S'OUVRE PAS ????

sMaChaineSQL = "CREATE DATABASE mabddmysql"

si
HExécuteRequêteSQL(sdreq,"cnxMacnn",hRequêteSansCorrection,sMaChaineSQL)alors
INFO("Table crée avec succès") FIN

HFermeConnexion(cnxMacnn)

Cette syntaxe ne fonctionne pas. J'ai recherché dans l'aide mais je n'ai rien
trouvé qui pourrait m'aider. Est-ce que quelqu'un aurait une idée

Merci à tous
Posté le 18 janvier 2010 - 13:02
Bonjour,

normalement la connexion root sans base permet de creer des bases
par contre il faudrait se connecter de façon a ce que la base ne soit pas
obligatoire
peut SQLconnecte au lieu de houvreConnexion qui doit demander une base

une fois la connection en root sans base on peut creer des bases (sans
oublier ensuite de faire un use pour utiliser une base)

reste donc a savoir si on peut se connecter sans base sur un des ordres
disponibles dans windev
Posté le 05 avril 2010 - 02:04
// Init du projet
// Création des variables de connection de : GcoData

nId est un entier = SQLConnecte(GcoData..Serveur,GcoData..Utilisateur,gsGcoDataPassword,"","MySQL",hAccèsNatifMySQL) //,gsGcoDataInfosEtendues)
SI nId <> 0 ALORS
sNomDatabase est une chaîne = GcoData..BaseDeDonnées
// 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)
Erreur("Veuillez vérifier les paramètres de connexion aux bases de données de la Caisse ")
Ouvre(fen_parametresLocalFiche)
RENVOYER Faux
FIN
// Dans tous les cas (connexion OK ou pas)
SQLDéconnecte()
Posté le 06 avril 2010 - 14:00
Si la connexion ne s'ouvre pas c'est peut être un problème de version de la librairie libmysql utilisée...

Olivier
Posté le 06 avril 2010 - 20:16
Attention. La DLL LibMySql.dll doit IMPERATIVEMENT etre présente dans le repertoire de l'exe (Meme en mode Test) (c:\mes_projets\mon_projet\exe)
Posté le 20 avril 2010 - 12:39
FOSTUR SEBASTIEN a écrit dans le message de news <e6216ba3a1cc649626d458b42f63cdef@news.pcsoft> :
// Init du projet
// Création des variables de connection de : GcoData

nId est un entier = SQLConnecte(GcoData..Serveur,GcoData..Utilisateur,gsGcoDataPassword,"","MySQL",hAccèsNatifMySQL) //,gsGcoDataInfosEtendues)
SI nId <> 0 ALORS
sNomDatabase est une chaîne = GcoData..BaseDeDonnées
// 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)
Erreur("Veuillez vérifier les paramètres de connexion aux bases de données de la Caisse ")
Ouvre(fen_parametresLocalFiche)
RENVOYER Faux
FIN
// Dans tous les cas (connexion OK ou pas)
SQLDéconnecte()



J'ai essayé ça et je me connecte bien, mais je reçois un message d'erreur du serveur qui me dit que la syntaxe n'est pas la bonne, pourtant c'est celle préconisée par http://dev.mysql.com/doc/refman/5.0/fr/create-database.html...

Quelqu'un aurait la bonne syntaxe?
Posté le 23 avril 2010 - 16:06
Pour notre part, nous utilisons HOuvreConnexion sur la base "mySQL" qui existe toujours je pense. Sinon il y a aussi "information_schema"
voici la syntaxe :
cnxMySql..Provider = hAccèsNatifMySQL
cnxMySql..Utilisateur = sUsager
cnxMySql..MotDePasse = sMotDePasse
cnxMySql..Serveur = sServeur
cnxMySql..InfosEtendues = (sPort<>"") ? "Server port="+sPort SINON ""
cnxMySql..BaseDeDonnées = "mySQL"
cnxMySql..Accès = hOLectureEcriture

cnxMySql..InfosEtendues+= [" ; "]+"WD Unicode Support = " + sUnicode
cnxMySql..InfosEtendues+= [" ; "]+"WD Cache Size = 10000"

// Ouverture de la connexion
RENVOYER HOuvreConnexion(cnxMySql)


puis liste des bases :
SI PAS WL.HExécuteRequêteSQL(VueDB,cnxMySql,hRequêteSansCorrection,"SHOW DATABASES") ALORS
Erreur(HErreurInfo())
RENVOYER Faux
FIN


et création de base :
sReq est une chaîne = ChaîneConstruit([
CREATE DATABASE %1
],sNomBDD)
SI PAS HExécuteRequêteSQL("TMP",cnxMySql,hRequêteSansCorrection,sReq) ALORS
Erreur(HErreurInfo())
RENVOYER Faux
FIN



Si l'ouverture ne fonctionne pas, voir libMySQl.dll qui doit etre a côté de l'exe ou dans un répertoire du path. Voir aussi les droits utilisateurs ds mySQL.

Bon courage !