Ado helper - classe d'aide manipulation de bases de données access mysql sqlserver [module de classe]

Soyez le premier à donner votre avis sur cette source.

Vue 12 122 fois - Téléchargée 1 906 fois


Description

bonjour,
les bases de données sont indispensables dans la plupart des applications aussi ici je vous propose une classe permettant d'y accéder très facilement.

DAO est toujours fonctionnel mais obsolète et n'est plus maintenu par Microsoft, la classe est donc basée sur ADO et ADOX (expliqué dans la classe)

reste le type de base?
ici le point le plus délicat...
à court terme (j'espère ^^) elle supportera le plus de "formats" de bases possible

actuellement sont supportées :
  • ACCESS 2
  • ACCESS 97
  • ACCESS 2000
  • ACCESS 2002
  • ACCESS 2003
  • MYSQL 4.0.15
  • SQLSERVER 6.5
  • SQLSERVER 7.0
  • SQLSERVER 2000


un exemple est fourni pour montrer les principales possibilités de cette classe :
  • connexion
  • déconnexion
  • afficher le contenu d'une table
  • lister toutes les tables
  • lister tous les champs d'une table ou d'une requête
  • création d'une base vierge
  • suppression d'une base
  • sauvegarde complète d'une base (pas évident pour MYSQL :p)
  • création d'une table avec clé primaire
  • ajout d'enregistrements
  • suppression d'enregistrements
  • mise à jour d'enregistrements
  • compactage d'une base (ACCESS uniquement)
  • taille d'une base
  • récupérer la version du MDAC
  • champ "image"
  • export XML
  • etc....


en espérant que çà vous soit utile
comm d'hab, les commentaires (et notes) font toujours plaisir ;)

Conclusion :


j'ai commenté abondemment mais si c'est insuffisant je modifierai

cette source sera régulièrement mise à jour afin d'avoir des fonctions pratiques, différents formats de bases supportés, et selon vos demandes

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
55 -
dans une classe similaire que j'ai faite, j'ai mis une fonction pratique pour réaliser des etats... pendant la conception de ceux-ci, je créé une table a partir d'un RecordSet.

est-ce que l'on peut utiliser des transactions ?
cs_Exploreur
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
11 -
Salut PCPT,

Ouahhhhhh ! C'est ce qui s'appelle une source(comme les autres aussi !), très très utile....Et bien, voilà une source qui est bien posée, organisée, et très bien expliquée ! Les débutants comme moi, vont pouvoir atteindre un certains "niveau" dans la conception de source en relation avec les Bdd...

C'est super cool d'avoir fait cela...De plus encore une source qui est à la hauteur de son auteur !

Bon, j'arrête là les compliments et les félicitations...lol..(mais ils sont mérités), car j'ai une source à décortiquer !

Passe de bonnes fêtes....

A+
Exploreur
cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3 -
Bonjour

je suis entierement d'accord avec Exploreur,trés trés utile est super bien commenté.
@plus
petchy
PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
23 -
salut,
merci pour vos comms ;)

Rey -> pas bête pour créer une table depuis un RS. je mets dans la TODO ;)
par contre comment récupères-tu les types des champs?

pour les transactions, à ma connaissances ACCESS ne les supporte pas
on verra pour SQLSERVER
et pour MYSQL il faut que le serveur ne soit pas en autocommit (ce qui se change par la commande SET AUTOCOMMIT=0, supportée par l'execution simple de requête) et que la base le supporte
plus d'infos ici : http://dev.mysql.com/doc/refman/5.0/fr/commit.html

++ ;)
Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
55 -
par ADOX

Public Sub CreateTableFromRS(ByRef vsName As String, ByRef voRs As ADODB.Recordset)
Dim oCat As ADOX.Catalog
Dim oTable As ADOX.Table
Dim oField As ADODB.Field
Dim oColumn As ADOX.Column
Dim oRs As ADODB.Recordset
Set oCat = New Catalog
Set oCat.ActiveConnection = moConn

On Local Error Resume Next
oCat.Tables.Delete (vsName)
On Local Error GoTo 0

Set oTable = New Table
oTable.Name = vsName

oCat.Tables.Append oTable

For Each oField In voRs.Fields
Set oColumn = New Column
oColumn.Name = oField.Name
oColumn.Attributes = adColNullable
oColumn.Type = oField.Type
oColumn.DefinedSize = oField.DefinedSize
oTable.Columns.Append oColumn
Next oField

Set oRs = Me.OpenRecordset(vsName, adCmdTable, adLockOptimistic)

voRs.MoveFirst
Do Until voRs.EOF
oRs.AddNew
For Each oField In voRs.Fields
If Not IsNull(oField.Value) Then
oRs.Fields(oField.Name).Value = oField.Value
End If
Next oField
oRs.Update
voRs.MoveNext
Loop
oRs.Close
End Sub

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.