BASE DE DONNÉE SANS AXCESS NI API

BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008 - 7 août 2004 à 17:00
cs_saados Messages postés 3 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 18 septembre 2004 - 18 sept. 2004 à 01:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25235-base-de-donnee-sans-axcess-ni-api

cs_saados Messages postés 3 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 18 septembre 2004
18 sept. 2004 à 01:47
pas mal!
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
9 août 2004 à 14:45
Désolé pour les fautes.

Je n'irais pas plus loin dans la conception car il faut que le code reste simple, à la porter de tout le monde, apres chacun peut le modifié à sa giz. Mais heureux de voir que certain planche dessus et donne des idéés pour l'ameliorer.

Après pour tout ce qui est classes, c'est trop compliker pour moi.
cs_cyrilp Messages postés 140 Date d'inscription mercredi 4 octobre 2000 Statut Membre Dernière intervention 12 août 2009
9 août 2004 à 14:13
Allez, malgré l'orthographe, je met 7 pour t'encourager !

C'est assez intéressant, ... mais vu que tu enregistres totalement tes données dans des variables avant d'écrire le fichier, la mémoire vive est fortement solicitée si tu comptes enregistrer enormement de données !!!

Ca serait bien aussi de prévoir tout ceci sous forme de classes avec fonction d'ajout, suppression, recherche, etc... ;)
cs_cyrilp Messages postés 140 Date d'inscription mercredi 4 octobre 2000 Statut Membre Dernière intervention 12 août 2009
9 août 2004 à 12:56
BozzoDodo > lol ;) je vais créér une fonction de lecture phonétique et lire la page avec :-D !

Bonne idée ;) !
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
9 août 2004 à 12:11
Alala je te conseille de lire comme si ce n'était que des sons =D
cs_cyrilp Messages postés 140 Date d'inscription mercredi 4 octobre 2000 Statut Membre Dernière intervention 12 août 2009
9 août 2004 à 08:16
Niiiiix, à quand un correcteur d'orthographe sur Codes Sources ???

Je n'ai même pas regardé la source, trop de fautes, ça me démotive :-(
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
8 août 2004 à 21:57
petite erreur dans AddItem:

Public Function AddItem(NewItem As cItem)
ReDim Preserve Items(1 To Count + 1)
Set Item(UBound(Items)) = NewItem
End Function

Voila mais ca marche toujours pas! Quelqu'un (code1 et BruNews vous avez l'air d'y connaitre jme trompe? :D) sait comment faire?
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
8 août 2004 à 21:45
oula!!!! Je m'y connais pas autant! ^^
Je chercher depuis taleur mais je trouve pas comment faire. J'ai créer une classe cItem. Dans celle ci j'ai déclaré Public Items() as cItem mais Vb me dit que c'est pas possible! =S. Donc après j'ai déclarer une collection Items() à la place et une property.
Pour ajouter un élément dans la suite (ex: j'ai item je veux créer un sous-item alor j'utilise la fonction Additem).
En gros voila mon code
(dans le projet je déclare BDD as new cItem) et dans la classe cItem:

Private m_Value As String
Private Items() As New Collection

Public Property Get Item(Index As Long) As cItem
Set Item = Items(Index)
End Property

Public Property Set Item(Index As Long, ByVal m_Value As cItem)
Items(Index).Add m_Value
End Property

Public Property Get Value() As String
Value = m_Value
End Property

Public Property Let Value(ByVal m_NewValue As String)
m_Value = m_NewValue
End Property

Public Function AddItem(NewItem As cItem)
ReDim Preserve Items(1 To Count + 1)
Set Item(UBound(Items)) = NewItem
Items(UBound(Items)).Add NewItem
End Function

Public Property Get Count() As Long
On Error Resume Next
Err.Clear
Count = UBound(Items)
If Err.Number <> 0 Then Count = 0
End Property

Comprend pas pourquoi ça marche pas =S
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2004 à 21:17
Salut a tous,

c'est bien de vouloir essayer mais il est inconcevable de faire un gestionnaire BDD en vb, deja rien que pour les limitations du langage (pas de pointeurs, pas d'acces directs ni gestion dynamique de la memoire, etc...).
Faudra passer au natif compile pour ce genre de choses.
cs_code1 Messages postés 22 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 21 octobre 2004
8 août 2004 à 20:22
si tu veus que ton idéé réussis il faut que tu savent
bien géré les curseurs coté serveur et coté client
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
8 août 2004 à 19:31
Ton code m'a donné une idée. Je vais essayer de créer un base de donnée en me servant des Collection et de classes. Voila ce qu j'aimerai que ca donne

Item - value
/
Item - value
/ \
Item - value
Base
Item - value
\ /
Item
\.......


J'espère y arriver c'est pas gagné =S
cs_code1 Messages postés 22 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 21 octobre 2004
8 août 2004 à 18:38
l'interé de la programation c'est l'execution de programme et personnélement je trouve ton code
super c'est tu execute ce programme tu trevera que presque le meme essay de l'associer avec de composant
base de donnée est il deviendra un code des pro
private sub bt_click()
for i=1 to 10
fontsize=10+i
print "test"; i
next i
end sub
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
8 août 2004 à 11:25
Ouais mais perso je prefère la technique de legion91. Parce que quand on reserve une chaine à un certain nombre de caractères le fichier a tendance a prendre du... volume =D.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 août 2004 à 06:18
nom as string * 50

veut tout simplement dire que ta chaine est reservée avec 50 caractères en mémoire....
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
8 août 2004 à 02:08
nom as string * 50 a quoi sert le multiplier ?

Ouais pour les redim de tableaux c'est à corriger ;-).
Je sais pas pour vous mais la je me demande qui à postez une source ? En tout cas c'est pas moi ;-)

Et dire que je vais aller me coucher et que demain c'est sur jvais taffer sur vos idées.

Merci les gars.
cs_RDX Messages postés 117 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 27 août 2005
7 août 2004 à 23:00
Ca marche, c du bon boulot!

Seulement une chose : pourquoi redimensionne tu 2 fois ton Tableau buf()?
tu sais que tu as 11 éléments, dimensionne le a 10 et ca suffira, pas besoin de REDIM PRESERVE dans ce cas :)

Tu peut stocker des tableaux de ce que tu veux, pas besoin de se limiter seulement au chaines. Tu peut même utiliser des type utilisateurs!

Comme :

Private Type FichePersonne
nom as string * 50
prenom as string *200
addresse as string *1000
tel as string*10
end type

Dim fiches(20) as FichePersonne

et tu fait pareil avec ce tableau.

Bye!
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
7 août 2004 à 22:57
Enfaite dans un autre projet j'ai fait presk de la mem maniere (principe car sinon c'est trop long):
option explicit
private type Buffer
Count as long
Data () as tring)
end type

'form

private Buffer as Buffer
....
Open ....
Put #1,,Buffer
Close #1

et sa marche aussi bien ;-)
cs_code1 Messages postés 22 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 21 octobre 2004
7 août 2004 à 20:44
bien résonné bozzodoo
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
7 août 2004 à 19:54
Pour me faire pardonner (tu avais raison j'avais mal lu le code hihihi) j'ai modifier les trucs pas tout à fait corrects et maintenant le nombre de membres s'enregistre dans le fichier).


Private buf() As String

Private Sub cmdEcrire_Click()
Dim i As Long
Dim n As Long
Dim ffile As Byte

'Nombre de valeur à créer
n = 10

ffile = FreeFile

Open App.Path & "\Simple.txt" For Binary As #ffile
'On redimensionne le tableau
ReDim buf(n)

'Création de la base de donnée (memoire)
For i = 0 To n
buf(i) = "test" & i
DoEvents
Next i

'On sauvegarde le nombre de membres
Put #ffile, , n

'On sauvegarde la base de donnée (physique)
Put #ffile, , buf()

'On utilise plus le txt alors on le ferme
Close #ffile

'On ne garde plus les valeur de la base
Erase buf
End Sub


Private Sub cmdLire_Click()
Dim i As Long
Dim n As Long
Dim ffile As Byte

ffile = FreeFile

'Ouverture du fichier txt en mode binaire
Open App.Path & "\Simple.txt" For Binary As #ffile

'On récupère le nombre de membres de la base de donnée
Get #ffile, , n

'On redimensionne le tableau pour qu'il puisse acceuillir toutes les valeurs
ReDim buf(n)

'On lit les valeurs de la base de donnée
Get #ffile, , buf()

'On a finit on ferme le fichier
Close #ffile

'On efface la Form
Me.Cls

'Listing de la base
For i = 0 To UBound(buf)
Print buf(i) 'impression sur la Form
DoEvents
Next i
End Sub
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
7 août 2004 à 19:30
euh... théoriquent puisque j'ai déjà voté
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
7 août 2004 à 19:29
J'ai rien dit! J'ai vérifié et ca marche... dsl je remonte la note du coup... =P
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
7 août 2004 à 19:13
Oui c'est bien ce que j'avais compris mais je doute que tu puisse rendre cela plus complexe ;-) (essaie d'enregistrer des sauts à la ligne avec ton code... c'est pas possibles...)
cs_legion91 Messages postés 216 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 15 décembre 2010
7 août 2004 à 17:24
J'ai pas dit que c'etait plus complexe à AXCESS puisque c'est plus facile à faire avec mon code mai j'ai dit que l'ont pouvait la rendre + complexe.
BozzoDodo Messages postés 185 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 10 janvier 2008
7 août 2004 à 17:00
Je trouve ca plutot inutile comme code! Je vois pas en quoi c'est une base de donnée + complexe qu'avec access.... bref 5/10
Rejoignez-nous