Page 1 sur 2
Bases de données
Publié : jeu. 13/juil./2006 19:47
par gansta93
Bonjour,
Je veux faire un programme avec des bases de données. Mais comment créer le fichier de base de données avec PureBasic ? Je ne voi que OpenDataBase() mais qui sert à ouvrire un fichier déjà existant. Merci d'avance pour votre aide.
Publié : jeu. 13/juil./2006 20:29
par Anonyme
Haaa, c'est pour tes projets bizaroïdes ?
Perso, je creer une base de données directement sur le net (ifrance)
Puis, via des script php j'entre ou j'extrait des valeurs, j'ai plus aucun exemple à te filer mais en cherchant sur le forum tu devrais trouver quelques infos.
Publié : jeu. 13/juil./2006 20:48
par Thyphoon
gansta93 a écrit :Bonjour,
Je veux faire un programme avec des bases de données. Mais comment créer le fichier de base de données avec PureBasic ? Je ne voi que OpenDataBase() mais qui sert à ouvrire un fichier déjà existant. Merci d'avance pour votre aide.
Il y a un projet en cours sur le forum qui est bien avancé
voir ici :
http://purebasic.forum-gratuit.com/viewtopic.php?t=5242
Publié : jeu. 13/juil./2006 20:58
par Flype
mais surtout, qu'est ce que tu entends par base de données ?
juste un programme qui lit et sauve des données dans un fichier sur le disque dur ?
ou un programme qui fait appel à des requêtes SQL sur un serveur de base de données ?
parceque dans le deuxième cas, ce n'est pas à purebasic, ni au programmeur de créér la base de données. il faut installer un serveur type MySQL, et l'administrer puis avec la commande DOS 'odbcad32.exe' créer la connexion ODBC nécéssaire pour pouvoir s'interfacer à PB.
Publié : jeu. 13/juil./2006 21:47
par gansta93
Flype a écrit :mais surtout, qu'est ce que tu entends par base de données ?
juste un programme qui lit et sauve des données dans un fichier sur le disque dur ?
ou un programme qui fait appel à des requêtes SQL sur un serveur de base de données ?
parceque dans le deuxième cas, ce n'est pas à purebasic, ni au programmeur de créér la base de données. il faut installer un serveur type MySQL, et l'administrer puis avec la commande DOS 'odbcad32.exe' créer la connexion ODBC nécéssaire pour pouvoir s'interfacer à PB.
ça serait une base de données locales, où je ferais des requètes SQL.
Comme si j'avais une page PHP, sauf que la base de données elle serait dans le même répertoire que le programme et le programme ferait les requètes dans ce fichier. Je crois que c'est possible avec la lib SQLite mais j'aimerais ne le faire qu'avec des commandes natives à PureBasic.
Publié : jeu. 13/juil./2006 22:17
par KarLKoX
Perso, étant pas du tout orienté sgbd, je me sert d'EasyPHP qui permet de crééer rapidement une base de donnée sans trop de difficulté même pour un néophyte comme moi

Publié : jeu. 13/juil./2006 22:28
par gansta93
KarLKoX a écrit :Perso, étant pas du tout orienté sgbd, je me sert d'EasyPHP qui permet de crééer rapidement une base de donnée sans trop de difficulté même pour un néophyte comme moi

Mais après, comment utiliser cette BDD avec Pure appart en appelant une page PHP qui transmet les information qui sont ensuite réinterprétées par le programme ?
Publié : jeu. 13/juil./2006 22:30
par Flype
ou WAMP (que j'utilise) exactement dans le meme esprit.
http://www.wampserver.com/
Publié : jeu. 13/juil./2006 22:42
par Flype
sinon as-tu MS Access ?
Publié : jeu. 13/juil./2006 22:49
par gansta93
Flype a écrit :sinon as-tu MS Access ?
Oui. Dans ce cas-là je crai la BDD vide dans un fichier MDB que j'ouvre avec OpenDatabase ?
Publié : jeu. 13/juil./2006 23:18
par Flype
d'abord menu démarrer > executer > tape odbcad32 > source de donnees systeme > ajouter > pilote microsoft access :
nom : test_purebasic
selectionner: choisit le fichier .mdb créé avec access
et ensuite dans purebasic tu fais :
Code : Tout sélectionner
If InitDatabase()
If OpenDatabase(0,"test_purebasic","","")
If DatabaseQuery(0, "SELECT NOW")
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Wend
EndIf
EndIf
EndIf
Publié : ven. 14/juil./2006 1:03
par gansta93
Merci, je vais tester ça... donc c bien ce que je me disais, impossible de créer une bdd avec Pure... Comment automatiser l'opération que tu as décri ? par exemple si je diffuse un programme, pour que la bdd puisse être utilisée.
Merci beaucoup.
Publié : ven. 14/juil./2006 12:21
par Flype
avec çà tu pourra créer dynamiquement et facilement ta connexion ODBC (DSN) pour MSAccess toutes versions :
je ne sais pas si çà marche très bien, je l'ai écris tout à l'heure, testé chez moi avec succès en tout cas.
Code : Tout sélectionner
; flype, juil 2006
Enumeration 1
#ODBC_ADD_DSN ; Add a new user Data source.
#ODBC_CONFIG_DSN ; Configure (modify) an existing user Data source.
#ODBC_REMOVE_DSN ; Remove an existing user Data source.
#ODBC_ADD_SYS_DSN ; Add a new system Data source.
#ODBC_CONFIG_SYS_DSN ; Modify an existing system Data source.
#ODBC_REMOVE_SYS_DSN ; Remove an existing system Data source.
#ODBC_REMOVE_DEFAULT_DSN ; Remove the default data source specification section from the system information.
EndEnumeration
#ODBC_DRIVER_MSACCESS = "Microsoft Access Driver (*.mdb)"
Procedure.l MSAccess_AddConnection(name.s, database.s, hwnd.l = #Null)
Protected attrs.s
attrs + "UID=" + ";"
attrs + "PWD=" + ";"
attrs + "DSN=" + name + ";"
attrs + "DBQ=" + database + ";"
attrs + "FIL=" + "MS Access;"
attrs + "Driver=" + "ODBCJT32.DLL;"
attrs + "DefaultDir=" + GetPathPart(database) + ";"
attrs + "Description=" + FormatDate("Créé le %dd-%mm-%yyyy, %hh:%ii:%ss;", Date())
ReplaceString(attrs, ";", #NULL$, 2)
ProcedureReturn SQLConfigDataSource_(hWnd, #ODBC_ADD_DSN, #ODBC_DRIVER_MSACCESS, attrs)
EndProcedure
Procedure.l MSAccess_RemoveConnection(name.s, hwnd.l = #Null)
ProcedureReturn SQLConfigDataSource_(hWnd, #ODBC_REMOVE_DSN, #ODBC_DRIVER_MSACCESS, "DSN="+name)
EndProcedure
If InitDatabase()
DSN.s = "pbtest"
If MSAccess_AddConnection(DSN, "c:\test.mdb")
If OpenDatabase(0, DSN, "", "")
If DatabaseQuery(0, "SELECT NOW")
If NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
EndIf
EndIf
If DatabaseQuery(0, "SELECT * FROM personne")
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Debug GetDatabaseString(0, 1)
Debug GetDatabaseString(0, 2)
Wend
EndIf
EndIf
MSAccess_RemoveConnection(DSN)
EndIf
EndIf
Publié : ven. 14/juil./2006 12:35
par gansta93
Flype a écrit :avec çà tu pourra créer dynamiquement et facilement ta connexion ODBC (DSN) pour MSAccess toutes versions
OK... si je veux en créer une pour un autre type de BDD, je change donc le nom du driver ? dsl mais je
débute en bdd lol... C'est ça de vouloir faire autre chose que du fichier ini pour stoquer des informations lol... et être à la recherche de quelque chose qui soit dynamique lol.
Publié : ven. 14/juil./2006 12:44
par Flype
donc là tu as l'example pour MSAccess mais si tu veux connaitre les parametres necessaires pour autre bdd, je te conseille de faire çà :
1/ ouvre le programme 'odbcad32.exe'
2/ va dans 'source de données fichier'
3/ bouton 'ajouter' et choisit le pilote (mysql par ex.)
4/ tapes le nom du fichier DSN à enregistrer
5/ configure la connexion dans la boite de dialogue spécifique à ce pilote
6/ si tout est OK, un fichier .DSN est alors créé sur le disque dur.
7/ ouvre ce fichier .DSN avec notepad, et tu y verras toutes les options pour ce pilote en particulier.
