11 mars 2013

MS Access avec Oracle


La mise en œuvre pratique  d’Access avec une base Oracle peut être abordée de deux façons : Une approche “ Access ” que nous qualifierons de traditionnelle, s’appuyant sur le moteur Jet. Une approche “ Oracle ” , ne s’appuyant pas sur le moteur jet et utilisant directement la connectivité Oracle, soit à travers ODBC, soit à travers OLE DB ; le modèle d’accès aux données étant soit DAO (ancien modèle), soit ADO.

1.     Approche Access


Cette approche exploite le concept de  base de données frontale/principale d’Access : L’application Access est fragmentée en deux fichiers .mdb. Un premier fichier .mdb destiné à contenir les données seules. Un second fichier .mdb est destiné à contenir les tables attachées, les requêtes, les formulaires, les états, et les modules de  code. cette technique est supportée à partir de Access 97.
Pour l’utilisation d’Oracle, les données sont stockées dans le SGDB Oracle, et celui-ci joue le rôle de base principale. On conserve un seul fichier .mdb pour stocker  les requêtes, les formulaires, les états,  les modules de  code, et les attachements aux tables Oracle. 

1.1     Schéma de principe




-Modèle d’accès aux données : DAO  jusqu’à Access 97 ;  ADO ( composant de MDAC) à partir de Access 2000;  

-Technologie de middleware : ODBC.

1.2     Avantages


Dans cette approche, les développements s’effectuent de façon transparente par rapport à la base Oracle. Et les caractéristiques qui constituent l’attrait d’Access  sont disponibles en totalité.

1.3     Inconvénients


Le moteur Jet continue à fonctionner comme si les données accédées étaient sur le poste de travail, entraînant de mauvaises performances dans de nombreux cas de figure : nombreuses tables, formulaire comportant des listes, des grilles, etc.

1.4     Pré-requis


La mise en œuvre de cette approche nécessite :
- La présence du client Oracle ;
- La configuration du fichier de paramètre Oracle (tnsname.ora) pour l’accès à la base de données (Nom de l’instance, nom du serveur) ;
- La présence du driver ODBC Oracle ;
- La configuration  du driver Oracle dans les sources de données ODBC.



1.5     Optimisation


La seule démarche d’optimisation est l’utilisation de l’objet Workspace du moteur Jet, en lieu et place de l’Objet CurrentDB.

2.     Approche  Oracle


Dans cette approche, on accède directement à Oracle, sans passer par le moteur Jet. Ceci  revient à une  programmation  Visual Basic, dans ACCESS.

2.1     Schéma de principe





-Modèle d’accès aux données : DAO  (Access 97/ Access 2000) ;  ADO ( composant de MDAC) à partir de Access 2000;
-Technologie de middleware : ODBC ou OLE DB.


2.2     Avantages


L’accès à Oracle est entièrement sous le contrôle du programmeur. Les performances, en l’absence de Jet, sont nettement améliorées.


2.3     Inconvénients


La programmation est plus complexe : rédaction en VB du code de manipulation des objets d’accès aux données.

2.4     Pré-requis


La mise en œuvre de cette approche nécessite :
  • La présence du client Oracle ;
  • La configuration du fichier de paramètre Oracle (tnsname.ora) pour l’accès à la base de données (Nom de l’instance, nom du serveur) ;
  • La présence du driver ODBC Oracle  ou Oracle OLE DB Provider;
  • La présence de MDAC pour l’accès au modèle ADO.
  • La configuration  du driver Oracle dans les sources de données ODBC.


2.5     Optimisation


Un second niveau d’optimisation consiste à utiliser l’objet d’accès aux données fournis par Oracle : Oracle Object for OLE DB (OO40). Celui-ci doit avoir été installé.




Remarque
Si l’approche Access est orientée “ utilisateur non averti ”, de par sa facilité de mise en œuvre, l’approche Oracle, qui revient à une programmation Visual Basic, nécessite un seuil de compétence se situant au-delà de celui d’un utilisateur de base.

Aucun commentaire :

Bibliographie

  • ASP.NET Data Web Controls(Scott Michell)
  • Building Custom PHP Extensions(Blake Schwendiman)
  • Développer avec CORBA en JAVA ET C++(David Acremann)
  • Java Native Interface(Sheng Liang)
  • Mastering WebLogic Server(Gregory Nyberg; Robert Patrick)
  • Oracle Database 10g RAC on Linux(Julian Dyke; Steve Shaw)
  • Test Process Improvement(Martin Pol)
Back to top