

C'est pour ça que ça serait bien que PureBasic le gère...Flype a écrit :c'est vrai que ya pas bcp d'examples sur le forum mais ca se comprends, c'est pas trop distribuable un source qui fait appel aux bdd, puisque peu de personnes pourront le tester : installation, configuration de la bdd, création des tables, pfff, faut vraiment etre motivé
A coup de ImportC et de libmysql.libgansta93 a écrit :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 ?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
Il n'est pas nécessaire d'utiliser de gros SGBD pour maniupuler des tables. Un programme avec une base de type Access, DBase, etc... peut très bien être distribué sans que l'utilisateur ai besoin de faire une installation ou un paramétrage.Flype a écrit :c'est vrai que ya pas bcp d'examples sur le forum mais ca se comprends, c'est pas trop distribuable un source qui fait appel aux bdd, puisque peu de personnes pourront le tester : installation, configuration de la bdd, création des tables, pfff, faut vraiment etre motivé
Code : Tout sélectionner
#ODBC_ADD_DSN = 1 ; Add Data source
#ODBC_CONFIG_DSN = 2 ; Configure (edit) Data source
#ODBC_REMOVE_DSN = 3 ; Remove Data source
;- Gadget Constants
;
Enumeration
#ODBC_0
EndEnumeration
;- Fct - Connexion à la BD
Procedure MakeConnection(Driver.s,strAttributes.s)
Result=OpenLibrary(#ODBC_0,"ODBCCP32.DLL")
If Result
lpszDriver.s=Driver
MyMemory=AllocateMemory(Len(strAttributes))
CopyMemory(@strAttributes,MyMemory,Len(strAttributes))
For L=1 To Len(strAttributes )
If PeekB(MyMemory +l-1)=Asc(";"):PokeB(MyMemory +l-1,0): EndIf
Next L
Result = CallFunction(#ODBC_0, "SQLConfigDataSource", 0,#ODBC_ADD_DSN,lpszDriver.s,MyMemory )
NewResult=SQLConfigDataSource_(0,#ODBC_ADD_DSN,lpszDriver.s,MyMemory )
FreeMemory(#ODBC_0)
CloseLibrary(#ODBC_0)
If Result
ProcedureReturn 1
EndIf
EndIf
EndProcedure
;- Fct - Fermeture de laconnexion
Procedure DeleteConnection(Driver.s,DSN.s)
Result=OpenLibrary(#ODBC_0,"ODBCCP32.DLL")
If Result
lpszDriver.s=Driver
strAttributes.s = "DSN="+DSN
Result = CallFunction(#ODBC_0, "SQLConfigDataSource", 0,#ODBC_REMOVE_DSN,lpszDriver.s,strAttributes )
CloseLibrary(#ODBC_0)
If Result
ProcedureReturn 1;MessageRequester("Info","DSN Delete",0)
EndIf
EndIf
EndProcedure
;- Création DNS dans ODBC
Result=Makeconnection("Microsoft Access Driver (*.mdb)","Server=SomeServer; Description=Description For Purebasic MDB-ODBC;DSN=PureBasic_DSN;DBQ="+DbPlan+"\Base.mdb;UID='';PWD='';")
If InitDatabase() = 0
MessageRequester("Erreur", "Initialisation ODBC impossible !", 0)
End
EndIf
;- Utilisation de la base de données en SELECT
Procedure Login()
If OpenDatabase(#Data_0, "PureBasic_DSN", "","")
If DatabaseQuery(#Data_0,"SELECT * FROM Login WHERE Code='"+User+"'")
If NextDatabaseRow(#Data_0)
Nom.s = GetDatabaseString(#Data_0,1)
Pre.s = GetDatabaseString(#Data_0,2)
StatusBarText(#StatutBar_0, 0, "Bonjour "+ Pre + " " + Nom)
EndIf
EndIf
CloseDatabase(#Data_0)
EndIf
EndProcedure
;- Utilisation de la base de données en DELETE / INSERT
Procedure Ecrit()
If OpenDatabase(#Dat_00201, "PureBasic_DSN", "","")
DatabaseQuery(#Dat_00201,"DELETE * FROM Test WHERE Code = '"+User+"'")
DatabaseQuery(#Dat_00201,"INSERT INTO Test([code],[Debut],[Fin]) VALUES ('" + User + "','" + Debut + "','" + Fin + "')")
CloseDatabase(#Data_0)
EndIf
EndProcedure
;- Suppression connection DNS dans ODBC : à ajouter à la fermeture de l'application
Result=Makeconnection("Microsoft Access Driver (*.mdb)","PureBasic_DSN")
Code : Tout sélectionner
; flype, juil 2006
Enumeration 1
#ODBC_ADD_DSN ; Ajoute une source de données utilisateur.
#ODBC_CONFIG_DSN ; Configure/Modifie une source de données utilisateur existante.
#ODBC_REMOVE_DSN ; Supprime une source de données utilisateur existante.
#ODBC_ADD_SYS_DSN ; Ajoute une source de données système.
#ODBC_CONFIG_SYS_DSN ; Configure/Modifie une source de données système existante.
#ODBC_REMOVE_SYS_DSN ; Supprime une source de données système existante.
#ODBC_REMOVE_DEFAULT_DSN ; Supprime la source de données définies par défaut.
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