[SOCPB 2006] Projet # 1 : Rendre facile la gestion de MySQL
OK je comprends mieux pour les #PB_Any.Dr. Dri a écrit :En ce qui concerne mon code, il a l'air compliqué comme ca (79 lignes je crois ?) mais en fait il ne fait que donner un accès à quelques fonctionsSi tu utilises ces fonctions, tu ne vas pas émuler le #PB_Any mais bel et bien utiliser le système qu'utilisent les libs natives pour créer des objets (statiques ou dynamiques)Object_GetOrAllocate(*Object, Object.l)
Object_GetObject(*Object, Object.l)
Object_IsObject(*Object, Object.l)
Object_EnumerateAll(*Object, Callback, *VoidData)
Object_EnumerateStart(*Object)
Object_EnumerateNext(*Object, *ID.Long)
Object_EnumerateAbort(*Object)
Object_Free(*Object, Object.l)
Object_Init(StructureSize.l, IncrementStep.l, FreeObject)
Object_GetThreadMemory(MemoryID.l)
Object_InitThreadMemory(Size.l, InitFunction, EndFunction)
Sinon je pense que le mieux serait de réaliser entièrement le subsystem MySQL qui servira de squelette aux autres bases de données. Aussi l'idéal serait de se borner à recoder toutes les fonctions natives et rien de plus de manière à assurer une compatibilité totale entre les subsystems.
Dri
Et merci d'ailleurs, j'adopte. On va l'utiliser pour nos database.lib !
Comment as-tu trouvé çà Dri ?
Et oui, il faut commencer par MySQL. çà devrait être rapide.
L'include libmysql.pb (PB4) étant déjà dispo, le squelette du subsystem aussi. Suffit de faire çà proprement et j'espère que Tailbite va suivre.
...et tu es le bienvenu !
et oui on va répartir - on va essayé. pour l'instant on prépare le terrain, çà ce précisera bientôt.
d'ailleurs il va falloir que je compile les différents codes nécessaires - pour qu'on ai tous la meme base de travail - et pour qu'on bosse tous sur les meme version de BDD : 5.1 pour MySQL, 3.3.6 pour SQLite, etc...
et oui on va répartir - on va essayé. pour l'instant on prépare le terrain, çà ce précisera bientôt.
d'ailleurs il va falloir que je compile les différents codes nécessaires - pour qu'on ai tous la meme base de travail - et pour qu'on bosse tous sur les meme version de BDD : 5.1 pour MySQL, 3.3.6 pour SQLite, etc...
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
MySQL5: http://www-fr.mysql.com/
PostgreSQL8: http://www.postgresqlfr.org/
Firebird2: http://www.firebird-fr.eu.org/
SQLite: http://www.sqlite.org/
D'autres bases de données :
*EyeDB : http://www.eyedb.org/
*Access : http://office.microsoft.com/access/
*Oracle : http://www.oracle.com/lang/fr/database/index.html
*Interbase : http://www.borland.com/fr/products/interbase/index.html
*Sybase : http://www.sybase.fr/products/informationmanagement/#ds
*DB2 : http://www-306.ibm.com/software/data/db2/windows/
*4D : http://www.4d.fr/documentation/4DDoc67/ODC/ODCMDUS.HTM
*HyperFile : http://www.pcsoft.fr/accueilpub/hyper-file.htm
*Informix : http://www-5.ibm.com/fr/software/data/i ... ormix.html
*Paradox : http://en.wikipedia.org/wiki/Paradox_(database)
*Dbase : http://www.dbase.com/
*Adabas : http://www1.softwareag.com/Corporate/pr ... efault.asp
*InterSystem : http://www.intersystems.fr/france/cache ... ageID=1721
*FileMaker : http://www.filemaker.fr/
*Ingres : http://opensource.ingres.com/projects/ingres/
*Kexi : http://www.kexi-project.org/
*SQL Server : http://www.microsoft.com/france/sql/sql ... fault.mspx
*Progress : http://www.progress.com/products/deploy ... /index.ssp
PostgreSQL8: http://www.postgresqlfr.org/
Firebird2: http://www.firebird-fr.eu.org/
SQLite: http://www.sqlite.org/
D'autres bases de données :
*EyeDB : http://www.eyedb.org/
*Access : http://office.microsoft.com/access/
*Oracle : http://www.oracle.com/lang/fr/database/index.html
*Interbase : http://www.borland.com/fr/products/interbase/index.html
*Sybase : http://www.sybase.fr/products/informationmanagement/#ds
*DB2 : http://www-306.ibm.com/software/data/db2/windows/
*4D : http://www.4d.fr/documentation/4DDoc67/ODC/ODCMDUS.HTM
*HyperFile : http://www.pcsoft.fr/accueilpub/hyper-file.htm
*Informix : http://www-5.ibm.com/fr/software/data/i ... ormix.html
*Paradox : http://en.wikipedia.org/wiki/Paradox_(database)
*Dbase : http://www.dbase.com/
*Adabas : http://www1.softwareag.com/Corporate/pr ... efault.asp
*InterSystem : http://www.intersystems.fr/france/cache ... ageID=1721
*FileMaker : http://www.filemaker.fr/
*Ingres : http://opensource.ingres.com/projects/ingres/
*Kexi : http://www.kexi-project.org/
*SQL Server : http://www.microsoft.com/france/sql/sql ... fault.mspx
*Progress : http://www.progress.com/products/deploy ... /index.ssp
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
du boulot en veux tu en voilà...
merci progi1984, çà va m'aider ( plus tard ).
ps:
as-tu moyen de me donner le droit de modifier le 1er post de ce projet car j'aimerais y compiler nos sources/ressources. sinon tant pis, je mets tout dans le deuxième...
sinon j'ai avancé un peu hier sur le subsystem mysql.
çà fonctionne et je peux dors et déjà exécuter des requetes mysql (directe sans odbc) avec la syntaxe purebasic...
par contre, à vouloir une compatibilité totale avec les commandes d'origine, on se sent un peu bridé quand même.
juste un example :
avec la commande DatabaseColumnType(), la doc pb4 dit :
mais étant donné que MySQL (et les autres) gèrent bien plus que çà, j'ai rajouté des constantes 'privées' mais au risque d'une incompatibilité future. donc bon à voir, mais tout de même gérer le type 'date' n'est pas un gadget. au quotidien çà me serait utile.
au niveau de la répartition des taches je me sens bien faire le subsytem mysql moi meme parceque parti comme c'est là j'aurais fini ce weekend ou meme avant. ensuite on teste tout çà ensemble, et une fois validé, on pourra dispatcher la conversion des autres BDD aux volontaires grace à la trame de travail que constituera le subsytem mysql.
merci progi1984, çà va m'aider ( plus tard ).
ps:
as-tu moyen de me donner le droit de modifier le 1er post de ce projet car j'aimerais y compiler nos sources/ressources. sinon tant pis, je mets tout dans le deuxième...
sinon j'ai avancé un peu hier sur le subsystem mysql.
çà fonctionne et je peux dors et déjà exécuter des requetes mysql (directe sans odbc) avec la syntaxe purebasic...
par contre, à vouloir une compatibilité totale avec les commandes d'origine, on se sent un peu bridé quand même.
juste un example :
avec la commande DatabaseColumnType(), la doc pb4 dit :
donc la réalisation ressemble à çà :Les valeur du type peuvent être:
1: Format numérique : Long (.l) sous PureBasic
2: Format chaîne : String (.s) sous PureBasic
3: Format numérique flottant: Float (.f) sous PureBasic
4: Format numérique double : Double (.d) sous PureBasic
5: Format numérique quad : Quad (.q) sous PureBasic
Code : Tout sélectionner
Enumeration 1 ; datatypes
; PureBasic 4.0 datatypes
#DATATYPE_NUMERIC
#DATATYPE_STRING
#DATATYPE_FLOAT
#DATATYPE_DOUBLE
#DATATYPE_QUAD
; MySQL SubSystem datatypes
#DATATYPE_DATE
#DATATYPE_ENUM
#DATATYPE_BLOB
EndEnumeration
au niveau de la répartition des taches je me sens bien faire le subsytem mysql moi meme parceque parti comme c'est là j'aurais fini ce weekend ou meme avant. ensuite on teste tout çà ensemble, et une fois validé, on pourra dispatcher la conversion des autres BDD aux volontaires grace à la trame de travail que constituera le subsytem mysql.
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Désolé, je ne peux ni te donner les droits, ni supprimer le premier post... car je n'ai pas le droit, il faudrait que tu sois modo !Flype a écrit :du boulot en veux tu en voilà...
merci progi1984, çà va m'aider ( plus tard ).
ps:
as-tu moyen de me donner le droit de modifier le 1er post de ce projet car j'aimerais y compiler nos sources/ressources. sinon tant pis, je mets tout dans le deuxième...
PS: j'ai mis les liens dans mon premier post, si tu préfères (je peux les retirer au cas ou, ou bien mettre regarder le second post LIKE U WANT)
Première étape du projet : pas mal
Je pense que ta technique de faire le premier subsystem pour que les autres fassent pour d'autres SGBD est vraiment ce qu'il faut faire. Bon boulot

Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net