mysql & PB

Codes specifiques à Linux
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: mysql & PB

Message 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 ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: mysql & PB

Message 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
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: mysql & PB

Message par falsam »

Oops j'avais pas vu ton message MP. :oops:

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.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: mysql & PB

Message 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)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: mysql & PB

Message 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:"
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: mysql & PB

Message 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
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: mysql & PB

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Re: mysql & PB

Message par Fred »

Essaie d'utiliser "ProcedureCDLL"
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: mysql & PB

Message 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
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
doudouvs
Messages : 244
Inscription : jeu. 07/mars/2013 19:02
Localisation : France Alsace / Espagne Girona

Re: mysql & PB

Message par doudouvs »

Arfff j'ai trouver merci @Fred de m'avoir mis sur la voie, je chercher depuis hier.
J'ai remplacer

Code : Tout sélectionner

Import "/usr/lib/libmysqlclient.so"
Par :

Code : Tout sélectionner

ImportC "/usr/lib/libmysqlclient.so"
Résultat : " Vous êtes connecté. Version MySql 5.1.66" :D
GCC 7.4.0 / PureBasic 5.71 / Ubuntu 18.04.3 LTS
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: mysql & PB

Message 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

Code : Tout sélectionner

Import "/usr/lib/libmysqlclient.so"
Par :

Code : Tout sélectionner

ImportC "/usr/lib/libmysqlclient.so"
Résultat : " Vous êtes connecté. Version MySql 5.1.66" :D
J'en profite pour mettre à jour mon wrapper.:)
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre