PureBasic AND mySQL

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
lannoy
Messages : 59
Inscription : jeu. 09/juil./2009 13:31

PureBasic AND mySQL

Message par lannoy »

Bonjour, voila j'ai trouvé quelque ressources sur le sujet des bdds en PB, or je n'aime pas du tout la syntaxe SQLite et je me demandé si quelqu'un pourrais m'expliquais comment utilisé mySQL(phpmyadmin) via PureBasic .

D'après dobro il est possible d'utilisé une base de donnée qui se trouve sur un serveur pour stocké et récupéré des donnés avec PureBasic donc si vous avez quelque texte a me faire voir etc etc sa serais cool merci ++
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Salut,

En PureBasic, non seulement c'est possible mais en plus c'est pas dur. Comme dans quasiment tous les langages d'ailleurs, la connexion à une base de données étant le quotidien de beaucoup de programmeurs.

Déjà il faut commencer par le commencement :

Installer la base de données MySQL. L'as-tu déjà installé ?
Si non pour le télécharger il faut réfléchir à deux solutions.

1/
Si tu comptes utiliser MySQL en parallèle avec un site web/php,
vaut mieux se tourner vers un WAMP ou EASYPHP (les deux propose PhpMyAdmin).

http://www.wampserver.com/
http://www.easyphp.org/

2/
Si tu comptes juste utiliser la base (donc sans le serveur web apache/php),
alors le mieux c'est d'installer l'archive officielle MySQL (perso, je préfère... ici pas de PhpMyAdmin mais la suitement nettement meilleure MySQL Administrator, MySQL Query Browser, etc.)

http://dev.mysql.com/get/Downloads/MySQ ... pub/mysql/
http://dev.mysql.com/get/Downloads/MySQ ... mysql.com/


:wink:
Dernière modification par Flype le lun. 13/juil./2009 18:33, modifié 1 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Re: PureBasic AND mySQL

Message par Flype »

lannoy a écrit :or je n'aime pas du tout la syntaxe SQLite.
Au fait, qu'est-ce que tu n'aimes pas précisément ?

Le langage SQL de SQLite ?
Ou les commandes PureBasic ?
lannoy
Messages : 59
Inscription : jeu. 09/juil./2009 13:31

Re: PureBasic AND mySQL

Message par lannoy »

Flype a écrit :
lannoy a écrit :or je n'aime pas du tout la syntaxe SQLite.
Au fait, qu'est-ce que tu n'aimes pas précisément ?

Le langage SQL de SQLite ?
Ou les commandes PureBasic ?
La syntaxe de SQLite qui me dérange, car elle est différente de mySQL .

@Flype

Oui j'ai déjà le serveur connecté a internet et avec phpmyadmin installé enfin tout est prêt il me reste plus que savoir comment je me connecte dessus depuis PureBasic ! A savoir je veut me connecté depuis un PC distant, par exemple un quelqu'un télécharge mon prog et il se connecte au serveur mySQL .

VOila

EDIT je veut que sa soit sur le réseaux internet et non pas un réseaux local .
lannoy
Messages : 59
Inscription : jeu. 09/juil./2009 13:31

Message par lannoy »

C'est possible ???
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Oui, à distance, pas de problème. Sinon à quoi bon d'ailleurs :P

En pré-ambule, il faut connaitre ODBC.
ODBC, c'est la couche de connexion à une base de données sous Windows.
Les fonctions natives Database de Purebasic utilise ODBC, on peut faire sans mais c'est une autre aventure.

Sur ce site - PureArea - il y a une aide sur ODBC.
L'aide montre comment se connecter à une base Access. Pour MySQL çà y ressemble beaucoup.

http://www.purearea.net/pb/english/tutorials.htm
http://www.purearea.net/pb/download/tut ... C_odbc.zip





Donc puisque MySQL est déjà installé et configuré : 2ème étape :P

Il va falloir s'habituer à utiliser un outil d'administration fournit avec Windows 'ODBCAD32.EXE' :

Menu Démarrer --> Executer --> odbcad32.exe

C'est l'outil de gestion des connecteurs ODBC typique de Microsoft.
Dans le premier onglet 'Pilotes ODBC' normalement il faut une ligne 'MySQL ODBC 5.1 Driver'. Si il n'y est pas... étape suivante.

Il faut télécharger le pilote MySQL pour ODBC (ou connecteur ODBC, c'est pareil) qui n'est pas fournit par défaut avec Windows, on peut le comprendre.

http://dev.mysql.com/downloads/connector/
http://dev.mysql.com/get/Downloads/Conn ... pub/mysql/

Une fois installé, la ligne 'MySQL ODBC 5.1 Driver' doit apparaitre dans l'outil 'odbcad32'.

Si tout est OK, on arrive au plus intéressant.
Toujours dans 'odbcad32', onglet 'Sources de données système' il faut 'Ajouter...' une nouvelle source de données en sélectionnant le pilote MySQL puis 'Terminer'.
Reste à configurer la source (server étant le plus important) :

Data Source Name : 'test'
Description : 'facultatif'
Server : 'localhost' ou l'adresse ip distante (adresse depuis internet) du serveur mysql.
User : 'root'
Password : 'motdepasse'
Database : 'mysql' (ou le nom de ta base/schema)

Ensuite on clique sur 'Test' et si tout va bien on a 'Connection successful'.
Si non, il y a toujours une raison valable.
Genre le serveur mysql tourne-t-il ? le pare-feu bloque-t-il le port 3306, y a-t-il une redirection des ports ou un blocage dans la configuration routeur coté serveur, l'utilisateur mysql a-t-il les droits, ou encore le câble réseau est-il branché :twisted:



bon ben à bientôt.... :wink:
lannoy
Messages : 59
Inscription : jeu. 09/juil./2009 13:31

Message par lannoy »

wouha sa c'est de l'explication, bon je vais tout relire moins vite et essayé de comprendre merci encore
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Au fait, je viens de comprendre que tu veux y accéder depuis internet...

C'est moins courant, mais cela fonctionne exactement pareil.
après c'est qu'une question de sécurité et de configuration du réseau/routage.

L'essentiel c'est déjà de faire tout çà en local, puis depuis un autre pc en réseau local, puis si tout est ok, tenter depuis internet (via la vraie adresse IP internet, celle renvoyée par un site web comme http://www.monip.org/ depuis le serveur).
lannoy
Messages : 59
Inscription : jeu. 09/juil./2009 13:31

Message par lannoy »

Flype a écrit :Au fait, je viens de comprendre que tu veux y accéder depuis internet...

C'est moins courant, mais cela fonctionne exactement pareil.
après c'est qu'une question de sécurité et de configuration du réseau/routage.

L'essentiel c'est déjà de faire tout çà en local, puis depuis un autre pc en réseau local, puis si tout est ok, tenter depuis internet (via la vraie adresse IP internet, celle renvoyée par un site web comme http://www.monip.org/ depuis le serveur).
Oui d'ailleur je ne peut pas installé ce que tu ma dit car le serveur ne m'appartient pas, je ne peut rien installé d'autre dessus
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ah, si le serveur ne t'appartiens pas, si c'est un hébergeur alors laisse tombé la plupart du temps, les services mysql sont bloqués par sécurité. ils sont accessibles qu'en localhost point, donc généralement en PHP...

ceci dit le pilote odbc pour mysql s'installe sur le (ou les) poste client pas sur le serveur. le pilote c'est pour le logiciel qui veut accéder à la base pas l'inverse.
lannoy
Messages : 59
Inscription : jeu. 09/juil./2009 13:31

Message par lannoy »

D'accords alors pour faire plus simple je vais te demandé, c'est possible que je mette mon fichier .mdb dans l'archive de mon log et que ce dit fichier me serve de BDD ?

EDIT: Pour faire encore plus simple, sqlite c'est bien une base de donné ou il ni a besoin de rien, juste un fichier .sqlite ???

Car j'ai trouvé un soft pour généré les requêtes et la du coup sa me gène plus
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Si ce n'est pas ton serveur, alors il n'y a pas grands choses de faisable, point !

Il faut voir avec ton hébergeur les solutions techniques proposées. mais dans ce cas généralement l'accès au fichier ou à la base s'effectue en local. c'est généralement le langage CGI (php, python, perl, ...) qui le fera en local sur le serveur puis proposera - par exemple en xml - au téléchargement le résultat de la requête.
lannoy a écrit :sqlite c'est bien une base de donné ou il ni a besoin de rien, juste un fichier .sqlite ???
je n'utilise pas SQLite, je ne peux pas te dire.
lannoy
Messages : 59
Inscription : jeu. 09/juil./2009 13:31

Message par lannoy »

Tu peut m'en dire plus sur les base de données sqlite, c'est un simple fichier non ?

Et aussi sur ça

Code : Tout sélectionner

 ;- Constantes
; ----------
#ODBC_ADD_DSN = 1 ; Ajoute une source de donnée
#ODBC_CONFIG_DSN = 2 ; Configure la source de donnée
#ODBC_REMOVE_DSN = 3 ; Supprime la source

#DataBase = 1
#DSN = "PureBasic_DSN" ;nom de votre base
#Driver = "Microsoft Access Driver (*.mdb)" ;driver utilisé

;- Variables
; ---------
File.s = "C:\Documents and Settings\Hugo\Bureau\mabase.mdb" ;emplacement de la bdd

;- Procedures
; ----------
;** On ouvre la connection
; ----------------------
Procedure Makeconnection(Driver.s,Attributes.s)
result = OpenLibrary(1,"ODBCCP32.DLL")
If result <> 0 ;si il y a un ; enlevez le !
result = CallFunction(1, "SQLConfigDataSource", 0,#ODBC_ADD_DSN,Driver.s,@Attributes)
NewResult = CallFunction(1, "SQLConfigDataSource", 0,#ODBC_ADD_DSN,Driver.s,@Attributes)
CloseLibrary(1)
EndIf
ProcedureReturn result
EndProcedure ; fin de MakeConnection
;===============================================================================
;** On ferme la connection
; ----------------------
Procedure DeleteConnection(Driver.s,DSN.s)
result=OpenLibrary(1,"ODBCCP32.DLL")
If result
strAttributes.s = "DSN="+DSN
result = CallFunction(1, "SQLConfigDataSource", 0,#ODBC_REMOVE_DSN,Driver,strAttributes )
CloseLibrary(1)
If result
ProcedureReturn 1
EndIf
EndIf
EndProcedure ; fin de DeleteConnection

;*******************************************************************************


;Ensuite vous vous connectez comme ca:
;- Programme
; ---------
InitDatabase() ;ou UseODBCDatabase() pour les dernières versions
Makeconnection(#Driver, "DSN="+#DSN+";Description=Access File;DBQ="+File+";") ;ajoute la connexion
OpenDatabase(#DataBase, #DSN, "", "") ;ouvre la base de donnée
DeleteConnection(#Driver, #DSN ) ; ferme la connexion

C'est laquel la meilleur solution, sachant que je veut juste stocké des rendez-vous (c'est un aganda que je fait )
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

:? si tu expliquais dès le départ ce que tu voulais, ce serait plus simple pour tout le monde.

si c'est juste pour un agenda (non partagé), moi j'utiliserais XML, en plus il y a des fonctions natives pour çà dans PureBasic.
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Salut.
lannoy a écrit :Tu peut m'en dire plus sur les base de données sqlite, c'est un simple fichier non ?
Va voir ma réponse ici et oui sqlite est un simple fichier .sqlite comme un .txt donc c'est autonome et les gens à qui tu diffuses ton soft n'ont pas besoin d'installer quoi que ce soit.

En regardant le lien que j'ai donné dans mon autre post tu comprendras concrètement comment cela fonctionne.

Et pour ma part des essais que j'ai fais, j'ai utilisé exactement la même syntaxe que MySql pour créer une Bdd, la remplir, ajouter, supprimer, modifier des données et cela à très bien fonctionné.
Je n'ai pas vu de syntaxe particulière pour sqlite.
Répondre