Publié : jeu. 29/juin/2006 10:03
Je dirais la solution 1 egalement, c'est la plus simple pour l'utilisateur 

Forums PureBasic - Français
https://www.purebasic.fr/french/
D'accord avec toiFlype a écrit :Tout simplement parceque seules les bdd gratuites seront dans un premier temps supportées. Enfin c'est ce qui parait le plus raisonnable (?)
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