Bases de données

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Bases de données

Message 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.
Anonyme

Message par Anonyme »

Haaa, c'est pour tes projets bizaroïdes ? :D
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.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.
Image
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message 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 :P
"Qui baise trop bouffe un poil." P. Desproges
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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 :P
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 ?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

ou WAMP (que j'utilise) exactement dans le meme esprit.
http://www.wampserver.com/
Image
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

sinon as-tu MS Access ?
Image
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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 ?
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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.

;)
Image
Répondre