Introduction
Préambule
Rappels Access
Sécurité
Paramétrage JET
Rappels ADO
Propriétés statiques & dynamiques (Properties)
L’objet Connection
L’objet Command
Généralités
Propriétés
Méthodes
Collection Properties
Collection Parameters
Objet Parameter
Exemple
OpenSchema
Modèle objet
Notions Fondamentales
ADOX & Access
Propriétaire
ParentCatalog
L’objet Catalog
Collections de l’objet Catalog
Collection tables
Collection Procedures
Collection Views
Collection Groups
Collection Users
L’objet Table
Collection Properties
Collection Columns
Objet Column
Collection Indexes
Objet Index
Collection Keys
Quelques notions
Méthode Append
Objet Key
Exemple
Conclusion sur les tables
L’objet Procedure
Création d’un objet procédure
Pas d’objet Parameter
Modification d’un objet Procedure
L’objet View
Conclusion sur les objets View & Procedure
Gestion des utilisateurs
Cas particulier d’Access
Propriétés et droits
Propriétaire
Administrateur
Utilisateurs etgroupes
Héritage des objets
Objet Group
SetPermissions
GetPermissions
Objet User
ChangePassword
GetPermissions & SetPermissions
Properties
Exemple
Techniques de sécurisation
Modification
Création
Une autre solution : le DDL
Conclusion sur la sécurité
Conclusion
Introduction
Le présent article va aborder la programmation du modèle objet ADOX (Microsoft®ActiveX® Data Objects Extensions) pour le Langage de Définition des Données (DDL = DataDefinition Language and Security).
Dès à présent, il faut bien comprendre que la bibliothèque ADOX sert pour la création ou la modification d’une base de données. Pour une simple consultation, il est beaucoup plus efficace d’utiliser la méthode OpenSchema d’ADO. Toutefois, à des fins explicatives, vous trouverez du code « de consultation » dans cet article.Ce qui était du temps de DAO dans l’objet Database, c’est à dire la structure de la base (table,vue…) et dans l’objet Workspace (utilisateurs, groupes) se trouve réuni dans le modèle objet ADOX.Avant de pouvoir l’utiliser, il faut référencer la bibliothèque « Microsoft ADO Ext. 2.x for DDL and Security ».
Préambule
La quasi-totalité des exemples de cet article porte sur la programmation d’une base Access.
Pourtant on peut noter que :
Pour la programmation des bases Access DAO est un modèle beaucoup plus complet qu’ADO.
ADO est plutôt orienté SQL-Server.
J’ai fais ce choix car fondamentalement les différences sont uniquement dues aux fournisseurs et que le fournisseur Jet est le plus complexe à programmer. Partant du principe que les utilisateurs Access sont nombreux à utiliser ADO depuis la version 2000, j’ai écris cet article afin qu’ils puissent comprendre les problèmes qu’ils rencontrent. Pour les utilisateurs d’autres SGBD, les problèmes ne seront que moins nombreux.
Rappels Access
Sécurité
Il y a deux types de sécurité Access : la sécurité au niveau partage, c’est à dire l’utilisation d’un mot de passe pour ouvrir la base de données et la sécurité au niveau utilisateur semblable aux autres SGBD. Celle-ci repose sur l’identification de l’utilisateur, celui-ci ayant un certain nombre de droits définis. La différence d’Access vient de l’utilisation d’un fichier externe pour gérer cette sécurité. Les deux niveaux de sécurité sont cumulables.
Paramétrage JET
Par défaut, le paramétrage du moteur Jet se trouve dans la base de registre à la clé :
HKLM\Software\Microsoft\Jet\4.0\Engines\Jet 4.0.
Ce paramétrage pouvant être différent d’un poste à l’autre, il convient d’utiliser le code pour toujours mettre ce paramétrage aux valeurs désirées. Pour cela deux approches sont possibles : la modification des valeurs du registre ou le paramétrage de la connexion (méthode que nous verrons plus loin).
Rappels ADO
Sans que cet article couvre le modèle ADO, nous allons voir ici quelques notions qui nous seront utiles pour l’utilisation d’ADOX ou la récupération de schéma.
Propriétés statiques & dynamiques (Properties)
Dans le modèle ADO et a fortiori dans le modèle ADOX, de nombreux objets possèdent une collection un peu particulière : « Properties ». Celle ci concerne des propriétés dites dynamiques par opposition aux propriétés habituelles des objets (statiques). Ces propriétés dépendent du fournisseur de données, elles ne sont en général accessibles qu’après la création de l’objet (et éventuellement l’application d’une méthode refresh sur la collection) voire après l’ouverture de l’objet.
L’objet Connection
Dans son utilisation la plus courante la chaîne de connexion prend deux paramètres : le fournisseur et la source de données. Pourtant l’objet Connection comprend de nombreuses propriétés permettant de gérer le mode d’accès, la sécurité, le paramétrage Jet, etc…
Pour mieux appréhender l’objet Connection et ses propriétés, regardons le code suivant.
Dimcnn1 AsADODB.Connection
Setcnn1 = NewADODB.Connection
Withcnn1
Debug.Print .Properties.Count
.Provider = « Microsoft.Jet.OLEDB.4.0; »
.ConnectionTimeout = 30
.CursorLocation = adUseClient
.Mode = adModeShareExclusive
.Properties(« Jet OLEDB:System database ») =
« D:\User\jmarc\tutorial\ADOX\system.mdw »
Debug.Print .Properties.Count
.Open »Data Source=D:\User\jmarc\tutorial\ADOX\baseheb.mdb ;User Id=Admin;
Password= »
Debug.Print .Properties.Count
End With
Etudes de cas utiliser le modèle ADOX avec Visual Basic (843 KO) (Cours PDF)