PureBasic

Forums PureBasic
Nous sommes le Jeu 21/Nov/2019 2:33

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
 Sujet du message: mysql & PB
MessagePosté: Mar 30/Juil/2013 11:55 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
Salut,

Je me demande comment connecter une base mysql en natif sur linux

J'ai fait un petit prog server qui répond à un client pour l'instant pas de problème, seulement je souhaite cherche des informations dans une base mysql qui seront transmise au client par SendNetworkString.

pour l'instant j'ai :
Code:
UseODBCDatabase()

If OpenDatabase(#PB_Database_ODBC,"localhost","login","password")
SendNetworkString(ClienID, "Connect OK")
Else
SendNetworkString(ClienID, "Connect KO")
EndIf


Bien sur il répond toujours "Connect KO"

Je précise que mysql et sur le même serveur localhost ou 127.0.0.1 ou l'ip donnent les mêmes résultat

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mar 30/Juil/2013 15:03 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
D'après ce que j'ai compris il n'y a pas de connecteur Mysql problème de licence me reste plus qu'a passer par PostgreSQL
Allez @Fred on dira rien si tu nous rajoute Mysql :)

Dans tous les cas la Doc à ce sujet et indigeste enfin pour ma part

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mar 30/Juil/2013 15:27 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6857
Localisation: IDF (Yvelines)
Effectivement MySql n'est pas natif à cause du coût de la license.
Lien : http://www.mysql.fr/products/

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mar 30/Juil/2013 15:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6857
Localisation: IDF (Yvelines)
Il existe des wrapper mysql sous forme de fichier include développés par la communauté Pure Basic. je te propose celui que j'ai développé et qui fonctionne avec des serveur MySql locaux et distant Cloud SQL.

Par contre ce wrapper ne contient pas les Dll et Lib de connexion pour linux.

MySql.zip (X86) n'ayant pas linux je ne peux pas tester les connectors sous linux mais tu peux les télécharger sur cette page http://dev.mysql.com/downloads/connector/c/ aprés avoir sélectionner ton Os.

Exemple de code pour établir une connexion avec une base données (Prélablement crée sur ton serveur)
Code:
;Connection à une base de données

EnableExplicit

IncludeFile "libmysql.pbi"

Global SqlHost.s, SqlUser.s, SqlPassWord.s, SqlDatabase.s, SqlPort
Global SqlHandle.l, SqlQuery.s


;Initialisation de l'environnement MySQL
SqlHandle=MySqlInit()

;Initialisation des paramétres de connexion
SqlHost="127.0.0.1"
SqlUser="root"
SqlPassWord=""
SqlDatabase="dbdemo"
SqlPort=0

;Connection à la base de données
If MySqlConnect(SqlHandle, SqlHost, SqlUser, SqlPassWord, SqlDatabase, SqlPort)
  Debug "Vous êtes connecté. Version MySql " + MySqlGetSetverVersion(SqlHandle)

Else
    Debug "Erreur d’accès à la base de données "
EndIf

;Fermeture de la connexion MySql
MySqlClose(SqlHandle)

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Dernière édition par falsam le Jeu 01/Aoû/2013 15:47, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mar 30/Juil/2013 15:56 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
Ah merci @Falsam, je viens juste de finir d'installer Postgres et la connexion marche nickel depuis le soft.

Je vais quand même étudier ta solution car j'ai vraiment envie d'installer Postgres sur un serveur de prod

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mar 30/Juil/2013 16:01 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6857
Localisation: IDF (Yvelines)
doudouvs a écrit:
Je vais quand même étudier ta solution car j'ai vraiment envie d'installer Postgres sur un serveur de prod
Ma solution ne fonctionne qu'avec des bases de données MysQL ..... pas postgresql. Doudouvs la pause s'impose :)

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mar 30/Juil/2013 16:15 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
oui justement je souhaite utiliser Mysql, c'est surement mon premier post qui ta tromper :), moi je me suis perdu dans la doc et j'ai rien compris

Ahhhhh je viens de voir mon erreur
Citation:
Je vais quand même étudier ta solution car j'ai vraiment envie d'installer Postgres sur un serveur de prod


au lieu de
Citation:
Je vais quand même étudier ta solution car j'ai vraiment pas envie d'installer Postgres sur un serveur de prod


C'est vrai une pose s'impose d'ailleurs c'est Ricard 1/4

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mer 31/Juil/2013 8:53 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
Des choses m'échappes

Si j'ai :
Code:
EnableExplicit
importC "/usr/lib/libmysqlclient.so"

Global SqlUser.s
SqlUser = "localhost"


Réponse "Variable already declared with another type : SqlUser "

Si je commente Global
Réponse "Garbage at the end of the line"

Si je commente importC tout marche normalement

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mer 31/Juil/2013 10:00 
Hors ligne
Site Admin

Inscription: Mer 21/Jan/2004 11:03
Messages: 2565
Un bloc ImportC doit se terminer par EndImport. J'avoue que l'erreur n'est pas tres explicite.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Mer 31/Juil/2013 10:06 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
arff merci @Fred je viens juste de le trouver dans la doc http://www.purebasic.com/french/documen ... mport.html

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Jeu 01/Aoû/2013 11:10 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
Bon j'avance j'arrive a faire la connexion à Mysql avec libmysqlclient.so

INSERT, UPDATE, DELETE marche nickel

Par contre pour SELECT Je n'arrive pas à repuc le resultat

Code:
result = mysql_query(*hDB, "SELECT * FROM nom WHERE id='4' ")
Debug result

il renvoi bien 1, les logs du serveur j'ai bien Query SELECT * FROM nom WHERE id ='4'

Comment je récupère le contenu de la requête ?

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Jeu 01/Aoû/2013 11:35 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6857
Localisation: IDF (Yvelines)
Apparement tu n'utilises pas ma lib :)

je te donne un exemple de code te montrant la maniere de récupérer le résultat de ta requéte.
Code:
If MySqlConnect(SqlHandle, SqlHost, SqlUser, SqlPassWord, SqlDatabase, SqlPort)
 
    ;Sélection de toutes les colonnes d'une table
    SqlQuery="Select * 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 "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
je te laisse regarder le code de la lib que tu as eu pour voir à quoi correspond chacune des fonctions afin que tu puisses créer tes propres fonctions.

PS : Dans ma lib j'ai une fonction qui permet de transférer le résultat d'une requete directement dans une ListIconGadget.
MySqlQueryToListConGadget(MySqlhandle.l, MySqlQuery.s, Gadget.l, Option.i)

MySqlhandle.l : Handle de la base de données.
MySqlQuery.s : la réquete
Gadget : l'identifiant du listicongadget
Option : Une des valeurs suivant
    #PB_Ascii : Jeu de caractére ASCII
    #PB_UTF8 : jeu de caractére UTF-8
    #PB_Unicode : Jeu de caractère Unicode

A mon avis tu aurais pu améliorer ma lib pour qu'elle fonctionne aussi sous linux. N'ayant pas linux, je ne peux pas le faire.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Jeu 01/Aoû/2013 12:58 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
Je suis pas arriver a le transposer

Code:
;Connection à une base de données

EnableExplicit

ImportC "/usr/lib/libmysqlclient.so"
EndImport

Global SqlHost.s, SqlUser.s, SqlPassWord.s, SqlDatabase.s, SqlPort
Global SqlHandle.l, SqlQuery.s


;Initialisation de l'environnement MySQL
SqlHandle=MySqlInit()

;Initialisation des paramétres de connexion
SqlHost="127.0.0.1"
SqlUser="root"
SqlPassWord="pass"
SqlDatabase="dbdemo"
SqlPort=3306

;Connection à la base de données
If MySqlConnect(SqlHandle, SqlHost, SqlUser, SqlPassWord, SqlDatabase, SqlPort)
  Debug "Vous êtes connecté. Version MySql " + MySqlGetSetverVersion(SqlHandle)

Else
    Debug "Erreur d’accès à la base de données "
EndIf

;Fermeture de la connexion MySql
MySqlClose(SqlHandle)


Me donne comme erreur MySqlInit() is not a function, array, list, map or macro

J'ai rajouter
Code:
Macro MySqlInit()
SqlHandlel
SqlHost.s
SqlUser.s
SqlPassWord.s
SqlDatabase.s
;SqlPort


J'ai toujours la même erreur je doit mi prendre comme un pied

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Jeu 01/Aoû/2013 15:54 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6857
Localisation: IDF (Yvelines)
@doudouvs et ceux sous linux :) : J'ai modifié libmysql.pbi.
Le fichier compressé ci-dessous contient les connecteurs pour Windows (x86) qu'il est inutile d'installer ainsi que les connectors pour Linux et Mac Os qu'il faut par contre installer.

Sous windows je n'ai pas de souci de connexion.

N'ayant pas de PC sous Linux, je ne peux pas tester les connectors sous cet environnement. Pourrais tu tester le code qui se trouve dans ce fichier compressé. Ce code ne fait que tester une connexion sur une base de de données MySql hébergé.

:arrow: MySql.zip (X86)


Vous trouverez les connectors sur ce lien : http://dev.mysql.com/downloads/connector/c/

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: mysql & PB
MessagePosté: Jeu 01/Aoû/2013 16:24 
Hors ligne

Inscription: Jeu 07/Mar/2013 19:02
Messages: 188
Localisation: France Alsace / Espagne Girona
J'ai du rajouter le chemin pour la lib /usr/lib/libmysqlclient.so autrement j'ai une erreur gcc qui trouve pas la lib

quand je compile dans libmysql.pbi ligne 91 "Accès mémoire invalide."

_________________
Code toujours multi-OS
OSX 10.6.8 - Xcode Version 3.2.2 - GCC 4.2.1 / PureBasic 5.30 (MacOS X - x64) Full version / Parallels Windows XP PureBasic 5.30 (Windows - x86) Full version / Debian PureBasic 5.30


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page 1, 2  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye