Page 2 sur 2
Re: mysql & PB
Publié : jeu. 01/août/2013 16:27
par falsam
je dois modifier le code de cette manière ?
Code : Tout sélectionner
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
Import "libmysql.lib"
CompilerCase #PB_OS_Linux
Import "/usr/lib/libmysqlclient.so/libmysqlclient.so"
CompilerCase #PB_OS_MacOS
Import "libmysqlclient.so"
CompilerCase #PB_OS_AmigaOS
Import = "mysqlclient.library"
CompilerEndSelect
Si oui tu as bien la version du serveur MySql ?
Re: mysql & PB
Publié : jeu. 01/août/2013 16:32
par doudouvs
Ta vu mon message privé
J'ai mis ça :
Code : Tout sélectionner
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
Import "libmysql.lib"
CompilerCase #PB_OS_Linux
Import "/usr/lib/libmysqlclient.so"
CompilerCase #PB_OS_MacOS
Import "libmysqlclient.so"
CompilerCase #PB_OS_AmigaOS
Import = "mysqlclient.library"
CompilerEndSelect
C'est pour la debian après les autres peut être que le chemin change
Re: mysql & PB
Publié : jeu. 01/août/2013 16:43
par falsam
Oops j'avais pas vu ton message MP.
La base de données distante te permet ainsi qu'aux autres de faire des tests avec les codes que je poste. Reset de la base à Minuit. Si tu crées des tables alors précédent les des 3 premières lettres de ton speudo suivi d'un underline. Par exemple : dou_users
libmysqlclient.so est un connector générique qui je pense fonctionne avec les autres distributions de Linux.
Re: mysql & PB
Publié : jeu. 01/août/2013 18:24
par falsam
doudouvs a écrit :Par contre pour SELECT Je n'arrive pas à repuc le resultat
Comment je récupère le contenu de la requête ?
Dans ma base de test hébergé j'ai inséré une table contacts structurée de la façon suivante.
Code : Tout sélectionner
SqlQuery = "CREATE TABLE contacts ("
SqlQuery + "iduser INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY," ;Clé autoincrémentée
SqlQuery + "contact TEXT," ;Nom contact
SqlQuery + "telephone TEXT," ;Téléphone
SqlQuery + "compte TEXT," ;Compte
SqlQuery + "montant INTEGER," ;Montant
SqlQuery + "mois INTEGER" ;Mois
SqlQuery + ");"
Tu peux tester le petit code suivant qui fait un select de cette table et affiche le résultat.
Code : Tout sélectionner
;Lister le contenu d'une table MySQL
EnableExplicit
IncludeFile "libmysql.pbi"
Global SqlHost.s, SqlUser.s, SqlPassWord.s, SqlDatabase.s, SqlPort
Global SqlHandle.l, SqlQuery.s, SqlQueryResult.l, SqlRowCount.l, SqlColCount.l, Row.i, Col.i
;Initialisation de l'environnement MySQL
SqlHandle=MySqlInit()
;Initialisation des paramétres de connexion
SqlHost="s483331096.onlinehome.fr"
SqlUser="U1301"
SqlPassWord="falsam"
SqlDatabase="BD1301"
SqlPort=0
;Connection à la base de données
If MySqlConnect(SqlHandle, SqlHost, SqlUser, SqlPassWord, SqlDatabase, SqlPort)
;Sélection de toutes les colonnes d'une table
SqlQuery="Select contact, compte, montant, mois from contacts"
SqlQueryResult=MySqlQuery(Sqlhandle, SqlQuery)
;Le résultat de la requete est composé d'un tableau
If SqlQueryResult<>0
;Nombre de lignes dans le résultat de la requete
SqlRowCount = MySqlGetRowCount(SqlQueryResult)
;Nombre de colonnes dans le résultat de la requete
SqlColCount.l=MySqlGetColCount(SqlQueryResult)
;Affichons le résultat
For Row=0 To SqlRowCount-1
Debug ""
Debug "Ligne : "+Str(Row)
;Lecture de la prochaine ligne du résultat de la requete
MySqlNextQueryRow(SqlQueryResult)
;Pour chaque ligne, lecture de chque colonne
For Col=0 To SqlColCount-1
Debug MySqlNextQueryCol(Col, #PB_Ascii)
Next
Next
Debug " "
EndIf
;Libère la mémoire utilisée par un jeu de résultats.
MySqlQueryFree(SqlQueryResult)
Else
Debug "Erreur d'acces"
EndIf
;Fermeture de la connexion MySql
MySqlClose(SqlHandle)
Re: mysql & PB
Publié : jeu. 01/août/2013 22:11
par doudouvs
libmysqlclient.so est un connector générique qui je pense fonctionne avec les autres distributions de Linux.
pas sur que ce soit dans le /usr/lib/ je me souviens il y a longtemps une redhat m'avais causer certains soucis
attend avant de faire des requêtes pour l'instant chez nunux j'ai une erreur
quand je compile dans libmysql.pbi ligne 91 "Accès mémoire invalide."
A purée comment tu fait "doudouvs a écrit:"
Re: mysql & PB
Publié : lun. 05/août/2013 8:28
par doudouvs
@falsam
Quand je compile, J'ai une erreur accès mémoire invalide que je n'arrive pas a résoudre à la ligne 95 sur "
ProcedureReturn Result"
Code : Tout sélectionner
ProcedureDLL MySqlInit()
Result=mysql_init(#Null)
ProcedureReturn Result
EndProcedure
Re: mysql & PB
Publié : lun. 05/août/2013 8:31
par falsam
je viens de tester sur sous windows et je n'ai pas de souci. N'ayant pas linux je ne peux pas voir ce qui cloche.
Sur le forum anglais il y a un wrapper sql cross-platform.
http://www.purebasic.fr/english/viewtop ... 40#p216740
Re: mysql & PB
Publié : lun. 05/août/2013 8:43
par Fred
Essaie d'utiliser "ProcedureCDLL"
Re: mysql & PB
Publié : lun. 05/août/2013 8:49
par doudouvs
Oui je sais, par contre tu vois pas comment debuger ? si je fait un debug de Result il me donne un chiffre à 9 caractères.
@Fred avec ProcedureCDLL même punition
Re: mysql & PB
Publié : lun. 05/août/2013 9:13
par doudouvs
Arfff j'ai trouver merci @Fred de m'avoir mis sur la voie, je chercher depuis hier.
J'ai remplacer
Par :
Résultat : " Vous êtes connecté. Version MySql 5.1.66"

Re: mysql & PB
Publié : lun. 05/août/2013 9:52
par falsam
doudouvs a écrit :Arfff j'ai trouver merci @Fred de m'avoir mis sur la voie, je chercher depuis hier.
J'ai remplacer
Par :
Résultat : " Vous êtes connecté. Version MySql 5.1.66"

J'en profite pour mettre à jour mon wrapper.
