LDB ( Little DataBase ) 1.0 Beta
LDB ( Little DataBase ) 1.0 Beta
Voici une petite Lib faite uniquement avec des fonctions de PB ( aucune fonction de l'API )
Elle permet la création d'une base de donnée locale, l'ajout, la recherche, et le tri des données qu'elle contient.
J'ai écrit cette Lib car je n'ai rien compris à la lib Sqlite, ni réussi à avoir de traduction d'une lib équivalente (mais en allemand )
J'espère qu'elle vous servira, et si elle vous est utile, merci de me renvoyer les bug ainsi que les erreurs que j'aurais pu faire dans la doc ( Je l'ai écrite en Anglais ).
Si quelqu'un génère un code interessant utilisant cette lib ( exemple un carnet d'adresse), je serais interessé de l'intégrer afin d'ajouter des exemples concrets dans l'aide ( J'y indiquerait son nom bien entendu )
Pour info il y a une doc en plus (Ldb by Function.doc) qui indique toutes les fonctions de la Lib classées par type.
Télécharger la Librairie
a+ et bonne soirée
Elle permet la création d'une base de donnée locale, l'ajout, la recherche, et le tri des données qu'elle contient.
J'ai écrit cette Lib car je n'ai rien compris à la lib Sqlite, ni réussi à avoir de traduction d'une lib équivalente (mais en allemand )
J'espère qu'elle vous servira, et si elle vous est utile, merci de me renvoyer les bug ainsi que les erreurs que j'aurais pu faire dans la doc ( Je l'ai écrite en Anglais ).
Si quelqu'un génère un code interessant utilisant cette lib ( exemple un carnet d'adresse), je serais interessé de l'intégrer afin d'ajouter des exemples concrets dans l'aide ( J'y indiquerait son nom bien entendu )
Pour info il y a une doc en plus (Ldb by Function.doc) qui indique toutes les fonctions de la Lib classées par type.
Télécharger la Librairie
a+ et bonne soirée
Bonjour
j'ai testé mais je pense qu'il y a un manque dans la lib
LdbAddRecord() n'est pas incluse .
j'ai regardé dans le source ( Procedure LdbAddRecord() ) o lieu de
( ProcedureDLL LdbAddRecord() )
Bonne Journée et merci encore pour ton travail
Michel
LdbAddRecord() n'est pas incluse .
j'ai regardé dans le source ( Procedure LdbAddRecord() ) o lieu de
( ProcedureDLL LdbAddRecord() )
Bonne Journée et merci encore pour ton travail
Michel
quand je lance l'exemple fourni avec ta librairie
j'ai un message d'erreur a la ligne suivante
il marque invalid name: sameas an external command
voila un bug ...
j'ai un message d'erreur a la ligne suivante
il marque invalid name: sameas an external command
Code : Tout sélectionner
;{/ Déclaration des Procédures
Declare LdbCountField()
;}
voila un bug ...
Voici un code d'exemple de la Lib
En espérant que ça vous simplifiera sa mise en oeuvre
Code : Tout sélectionner
; Test de la Lib Ldb (Little Database )
; à lancer en mode Debug
; Initialisation de la Librairie
LdbInit()
; On créé la base de donnée avec 3 champs
LdbCreate("c:\Pilotes.db","Date Naissance,Nom,Prenom")
; On ajoute un enregistrement
LdbInsertRecord(-1)
; On écrit dans l'enregistrement
LdbWrite(1,"1969") ; 1er champ
LdbWrite(2,"Schumacher") ; 2eme champ
LdbWrite(3,"Michey") ; 3eme champ
; On ajoute un enregistrement
LdbInsertRecord(-1)
; On écrit dans l'enregistrement
LdbWrite(1,"1980") ; 1er champ
LdbWrite(2,"Button") ; 2eme champ
LdbWrite(3,"Jenson") ; 3eme champ
; On ajoute un enregistrement
LdbInsertRecord(-1)
; On écrit dans l'enregistrement
LdbWrite(1,"1981") ; 1er champ
LdbWrite(2,"Alonso") ; 2eme champ
LdbWrite(3,"Fernando") ; 3eme champ
; On ajoute un enregistrement
LdbInsertRecord(-1)
; On écrit dans l'enregistrement
LdbWrite(1,"1971") ; 1er champ
LdbWrite(2,"Villeneuve") ; 2eme champ
LdbWrite(3,"Jacques") ; 3eme champ
; On insère un enregistrement en position 3
LdbInsertRecord(3)
; On écrit dans l'enregistrement
LdbWrite(1,"1975") ; 1er champ
LdbWrite(2,"Schumacher") ; 2eme champ
LdbWrite(3,"Ralph") ; 3eme champ
; On pointe sur le 1er enregistrement car on s'est trompé de prénom
LdbSetPointer(1)
; Et on change le champ 2
LdbWrite(3,"Michael")
; Tri de la Bdd par le champ1 ( Date de naissance )
LdbSortNum(1)
; Affichage des pilotes triés par année de naissance
Debug "Affichage des pilotes triés par année de naissance"
For n=1 To LdbCountRecord()
LdbSetPointer(n)
Debug LdbRead(1)+" "+LdbRead(2)+" "+LdbRead(3)
Next
Debug ""
; Tri de la Bdd par nom des pilotes
LdbSortAlpha(2,0)
; Affichage des pilotes par nom
Debug "Affichage des pilotes triés par nom"
For n=1 To LdbCountRecord()
LdbSetPointer(n)
Debug LdbRead(1)+" "+LdbRead(2)+" "+LdbRead(3)
Next
Debug ""
; recherche de tous les nom comprenant "Schumacher"
LdbSearchInit(2,"Schumacher",0)
; Affichage des pilotes ayant pour nom "Schumacher"
Debug "Affichage des pilotes avec nom 'Schumacher'"
Repeat
Champ=LdbSearch()
If Champ=0 : Break : EndIf
LdbSetPointer(Champ)
Debug LdbRead(1)+" "+LdbRead(2)+" "+LdbRead(3)
ForEver
Debug ""
; Affichage des infos de la base
Debug "Infos sur la Base"
Debug "Nombre de champs "+Str(LdbCountField())
Debug "Affichage du nom des champs"
For n=1 To LdbCountField()
Debug "Champ n° "+Str(n)+" = "+LdbGetFieldName(n)
Next
Debug "Nombre d'enregistrements "+Str(LdbCountRecord())
; On enregistre
LdbSaveDatabase()
; et on ferme la database
LdbCloseDatabase()
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Droopy, tu pourrai mettre tes sources à disposition svp...
Car j'aimerai m'initier aux DB sur PB (pour changer de Visual Basic et PHP).
Mais j'arrive pas à ouvrir ma BD faîtes avec Acces (mdb), c'est normal ? c format est bien géré pourtant ! ???
Merci ..
Car j'aimerai m'initier aux DB sur PB (pour changer de Visual Basic et PHP).
Mais j'arrive pas à ouvrir ma BD faîtes avec Acces (mdb), c'est normal ? c format est bien géré pourtant ! ???
Merci ..
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
Le code source est fourni regarde dans : C:\Program Files\PureBasic\Examples\ldb\Source\Ldb.pb
et un exemple dans : C:\Program Files\PureBasic\Examples\ldb\test LDB us.pb
Sinon sur http://www.purearea.net/pb/english/userlibs.php
il y a une lib ( MDB) qui te permettra de te connecter facilement à une base access ( via ODBC )
J'avais pas vu le post de Gangsta93 : J'ai retesté et ça fonctionne bien avec Purebasic 3.93 ? Plus d'infos sur le bug ?
et un exemple dans : C:\Program Files\PureBasic\Examples\ldb\test LDB us.pb
Sinon sur http://www.purearea.net/pb/english/userlibs.php
il y a une lib ( MDB) qui te permettra de te connecter facilement à une base access ( via ODBC )
J'avais pas vu le post de Gangsta93 : J'ai retesté et ça fonctionne bien avec Purebasic 3.93 ? Plus d'infos sur le bug ?
Dernière modification par Droopy le lun. 23/mai/2005 21:48, modifié 1 fois.
Salut Lionel_Om
si tu veut gérer des base de données avec PureBasic
je te conseil une librairie Cheetab2.dll qui gère les fichiers . dbf
pour l'utiliser depuis plus d'un mois je peut te dire que c'est génial
à toi de voir .
ci dessous l'adresse du site
http://www.planetsquires.com
si tu veut gérer des base de données avec PureBasic
je te conseil une librairie Cheetab2.dll qui gère les fichiers . dbf
pour l'utiliser depuis plus d'un mois je peut te dire que c'est génial
à toi de voir .
ci dessous l'adresse du site
http://www.planetsquires.com
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Merci Cagou-77, je vais regarder
Mais PureBasic n'as les composants suffisant pr gérer les DB ??? Car ya tte ce qui faut on dirait, par contre je ne vois pas de lsiet avec les types et versions des tables supportées.
@ Droopy
J'y ai pensé que plus tard, ton prog utilise un système de base de données (je vais regarder tes sources) où c'est des "recherches" dans un fichier ??? ( à l'ancienne quoi ?)
Car j'ai envie d'utiliser les vrais SGBD pour avoir des traitements rapides et très automatisés.
Car je ne vois pas d'endroit où tapper des requêtes dans ton prog :
"SELECT COUNT(*) as nb FROM my_Table GROUP BY my_cle" ....
Mais PureBasic n'as les composants suffisant pr gérer les DB ??? Car ya tte ce qui faut on dirait, par contre je ne vois pas de lsiet avec les types et versions des tables supportées.
@ Droopy
J'y ai pensé que plus tard, ton prog utilise un système de base de données (je vais regarder tes sources) où c'est des "recherches" dans un fichier ??? ( à l'ancienne quoi ?)
Car j'ai envie d'utiliser les vrais SGBD pour avoir des traitements rapides et très automatisés.
Car je ne vois pas d'endroit où tapper des requêtes dans ton prog :
"SELECT COUNT(*) as nb FROM my_Table GROUP BY my_cle" ....
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
La base de donnée est stockée dans une LinkedList, tout se passe en mémoire ( rapide ), puis écriture de la LinkedList sur le disque en quittant.
Tu ne pourra pas faire : SELECT COUNT(*) as nb FROM ....
Tu peut spécifier l'ajout de champs, l'ajout de données, la recherche très simplement .
LDB est à réserver à de petites bases locales . ( genre carnet d'adresses )
Tu ne pourra pas faire : SELECT COUNT(*) as nb FROM ....
Tu peut spécifier l'ajout de champs, l'ajout de données, la recherche très simplement .
LDB est à réserver à de petites bases locales . ( genre carnet d'adresses )
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Daccord merci.
Je vais encore faire des tests avec les fcts de PB et si j ene trouve pas mon bonheur, je me tournerai vers les LIB externes...
Merci pr vos réponses
Je vais encore faire des tests avec les fcts de PB et si j ene trouve pas mon bonheur, je me tournerai vers les LIB externes...
Merci pr vos réponses

Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !