begin process at 2008 05 17 04:50:37
1 173 912 membres
44 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ADO HELPER - CLASSE D'AIDE MANIPULATION DE BASES DE DONNÉES ACCESS MYSQL SQLSERVER [MODULE DE CLASSE]


Information sur la source

Catégorie :Base de Donnees Classé sous : classe database, access, mysql, sqlserver, afck Niveau : Initié Date de création : 17/12/2007 Date de mise à jour : 13/01/2008 17:49:46 Vu / téléchargé: 4 495 / 979

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note


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
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • ADO_Sample.vbpTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 433 octets
  • ADO_Sample.vbwTélécharger ce fichier [Réservé aux membres club]Voir ce fichier222 octets
  •   database
    • Base_txt (avec notepad).mdb
    • Base2000 (avec access premium) avec PASSWORD.mdbTélécharger ce fichier [Réservé aux membres club]118 784 octets
    • Base2000 (avec access premium).datTélécharger ce fichier [Réservé aux membres club]118 784 octets
    • Base2000 (avec access premium).mdbTélécharger ce fichier [Réservé aux membres club]131 072 octets
    • Base2002-2003 (avec access ultimate).mdbTélécharger ce fichier [Réservé aux membres club]204 800 octets
    • Base2003 (avec access XP).mdbTélécharger ce fichier [Réservé aux membres club]204 800 octets
    • Base2007 (avec access ultimate).accdbTélécharger ce fichier [Réservé aux membres club]339 968 octets
    • Dictionnaire (access premium).mdbTélécharger ce fichier [Réservé aux membres club]147 456 octets
  •   class
  •   form
  •   img
  •   module
  •   usercontrol
    • AfBtn.ctlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier6 607 octets
    • AfBtn.ctxTélécharger ce fichier [Réservé aux membres club]10 524 octets

Télécharger le zip

17 décembre 2007 07:56:06 :
zip
17 décembre 2007 08:03:51 :
2 fichiers en trop
13 janvier 2008 17:49:47 :
Maj 1.2.1 : gestion complète de SQLSERVER, formatage de chaîne SQL, gestion d'erreurs plus claire, SqlExecute plus souple, existance d'une table, export d'un RecordSet en XML, export d'un RS en table (que pour access, voir les commentaires), aide pour les champs STREAM, compaquetage pour MySql et SqlServer, etc....
  • signaler à un administrateur
    Commentaire de Renfield le 17/12/2007 09:00:35 administrateur CS

    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 ?

  • signaler à un administrateur
    Commentaire de Exploreur le 17/12/2007 09:07:16 10/10

    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

  • signaler à un administrateur
    Commentaire de petchy le 17/12/2007 11:09:15 10/10

    Bonjour

    je suis entierement d'accord avec Exploreur,trés trés utile est super bien commenté.
    @plus
    petchy

  • signaler à un administrateur
    Commentaire de PCPT le 17/12/2007 17:31:14 administrateur CS

    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

    ++ ;)

  • signaler à un administrateur
    Commentaire de Renfield le 17/12/2007 19:41:23 administrateur CS

    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

  • signaler à un administrateur
    Commentaire de PCPT le 18/12/2007 20:08:06 administrateur CS

    j'adapterai dans la prochaine maj, merci ;)

  • signaler à un administrateur
    Commentaire de PCPT le 03/01/2008 14:59:38 administrateur CS

    Renfield -> dommage, apparemment seul access supporte '.Append ObjTable'
    je continue mes recherches...

  • signaler à un administrateur
    Commentaire de Renfield le 03/01/2008 15:05:10 administrateur CS

    j'ai fait ca pour access effectivement, pour un truc bien précis...
    dans l'absolu, faudrait utiliser une belle requete CREATE TABLE.

    actuellement, ca m'est utile pour mettre au point mes etats crystal.

    je créé mes données, je les stockes dans une base access pour pouvoir relancer encore et encore mon état, même sans VB ouvert.
    en 'production', j'envoie directement un recordset a mon etat, plus besoin de table. le coté éphémère de la chose a fait que je ne me suis pas cassé la tête avec une requete.

  • signaler à un administrateur
    Commentaire de PCPT le 13/01/2008 18:00:41 administrateur CS

    voilà une MAJ relativement importante, SQLSERVER200 est maintenant totalement fonctionnel et intégré, tant pour les créations de tables, listings de champs, requêtes, taille, duplication, compaquetage etc....
    MYSQL a aussi bien évolué

    j'ai aussi revu disons.. toute la todolist, voir le détail dans la source.

    j'ai changé le niveau (1 vers 2) parce que c'est pas forcément si évident de s'y retrouver dans ces 1700 lignes....

    pour rappel, le principal intérêt et de pouvoir communiquer avec des bases de types différents sans avoir à changer son code.

    c'est à dire qu'il y aurait juste une ou 2 propriétés à changer (genre l'IP, le mot de passe) et rien d'autre, sacré gain, de temps non ^^


    pour le moment la classe semble rencontrer un problème avec SQLSERVER2005 (délai dépassé mais je pense que l'erreur est fausse), je m'y pencherai plus tard

    n'hésitez pas à tester et à me demander d'autres types de bases (fox, oracle, etc...) en précisant alors comment me procurer le moteur et/ou une base exemple pour les tests

    ++ ;)

  • signaler à un administrateur
    Commentaire de Exploreur le 13/01/2008 20:17:55

    Salut PCPT,

    Pas eu vraiment bien le temps de bien regarder ta source en profondeur, mais déjà au niveau de la présentation du code c'est impécable(comme dans ton habitude)et au niveau fonctionnel pas encore fait tous les tests mais déjà, je peux dire que ta source va m'en faire voir de toutes les couleurs(dans le bon sens)...Je ne peux juste dire que c'est une source très bien pensée et réfléchie qui auras un avantage certains pour les débutants comme moi, même si la source et du niveau Initié(ce qui est normal), en la prenant tranquillement, je pense que l'on peut faire des sources plus très intéréssante et bien posée.

    En tout cas un grand merci de ce que tu apportes aux débutants qui veulent se lancer dans les Bdd comme "moi"...

    Et....effectivement c'est une belle surprise !

    Notes : Le seul "truc" ((rien d'insurmontable),mais c'est moi...j'ai pas de chance..lol...tu le sais...lol..), faut lancer l'application en 1024*768...bouhhhh, mon 1024*768 il n'existe plus...

    A+
    Exploreur  

  • signaler à un administrateur
    Commentaire de pluplu le 16/03/2008 22:48:24

    Salut PCPT,

    Génial ta classe pour simplifier la connexion entre divers bases de données. J'essaie par contre de relier un listfield d'un datacombo à un objet AfCls_ADO, et c'est un peu plus galère ça semble fonctionner pour la propriété ListField, mais je ne parviens pas pour la propriété Rowsource aurais tu une idée ??
          
    DbcCategory.RowSource = MyAdo.RSObjRecordSet(1).??
    DbcCategory.ListField = MyAdo.RSObjRecordSet(1).Fields![Category]

  • signaler à un administrateur
    Commentaire de PCPT le 16/03/2008 23:24:43 administrateur CS

    salut Pluplu, merci pour ton comm.

    umm, j'ai pas trop l'habitude d'utiliser d'objets pour faire les liaisons (d'où la classe...) donc :s

    si tu peux me faire parvenir un projet complet (DBCombo <> DataCombo, etc....), je regarderai en détail.

    à savoir que la classe renvoie tant un objet Recordset que Connection donc théoriquement tout est faisable ;)

    ++

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS