Sous danciennes versions de VB (4 & 5) notamment, laccès aux données était réalisé via les modèles DAO (en série sur toutes les versions) et RDO (sur les versions Entreprise). Ces modèles savaient parfaitement exploiter le moteur de base de données propriétaire de Microsoft JET. Ainsi exploiter une base *.mdb, comme Access peut en produire, est très facile. Mais si lon souhaite utiliser des données distantes et de formats divers, DAO et RDO vous contraignent à employer le gestionnaire ODBC. Les performances via ODBC sont moyennes et les ressources systèmes bien occupées.
Le modèle ADO (ActiveX Data Object) disponible en série sous VB6, est construit pour laccès à tout type de base même non relationnelle, ne sappuye pas sur ODBC mais sur une technologie déchange entre applicatifs, lOLE DB. Les performances sont accrues. Les bases accèdées nont pas à être " compatibles ADO. ". Linterface graphique de VB6 exploite au maximum ADO pour proposer des outils daccès aux données performants : Sources de données, Formulaires de données, Rapports, Générateurs de requêtes.
Tableau de comparaison entre DAO, RDO et ADO :
Caractéristiques |
DAO |
RDO |
ADO |
Type de modèle | Hiérarchique, déclaration et initialisation des objets relativement lourdes. | Hiérarchique, déclaration et initialisation des objets relativement lourdes. | Plat, déclaration et initialisation simplifiées. |
Formats de bases de données | Jet (.mdb), Paradox, FoxPro, Dbase, Bases fournissant un pilote ODBC. | Jet (.mdb), Paradox, FoxPro, Dbase, Bases fournissant un pilote ODBC. | Théoriquement tous les types sont supportés. |
Exploitation des ressources systèmes | Plus importante | Plus importante | Plus légère. |
Outils dinterface | Contrôle DATA | Contrôle
DATA
Concepteur RDO Data |
Concepteurs Data Environment, Data Report, Fenêtre de données, Concepteur de requêtes. |
Bibliothèque à référencer | Microsoft DAO 3.51 Object Library | Microsoft Remote Data Object 2.0 Library | Microsoft ActiveX Data Objects 2.0 Library |
Le
modèle ADO :
On parle dun modèle à plat et non hiérarchique. Cela signifie que vous nêtes pas forcé de déclarer explicitement certains objets avant dautres. Par exemple avec DAO, il faut créer un objet Database pour pouvoir ensuite, grace à ses méthodes, créer un objet Recordset ou TableDef. Sous ADO, vous pouvez manipulez indépendamment un objet Connection ou Recordset ou Command.
Avant dexploiter le modèle A.D.O., il faut y faire référence dans Projet-Références, et cocher " Microsoft ActiveX Data Objects Library ".
La connexion :
Vous pouvez initier une connexion à laide de lobjet Connection.
Déclaration : Private Cnx as Connection
Initialisation : Set Cnx = New Connection
Propriétés à renseigner :
.Provider = " Nom du fournisseur OLEDB "
.ConnectionString = " Infos sur la base et lutilisateur "
Méthodes de connexion :
.Open
.Close
Lobjet Connection peut générer des évènements si il est déclaré avec le mot clé WithEvents :
Private WithEvents Cnx as Connection
Lobjet Recordset :
Il donne laccès aux données. Les enregistrements stockés sont issus dun objet Connection existant ou dun objet Command ou encore dune connexion implicite.
Déclaration : Private Rs as Recordset
Initialisation : Set Rs = New Recordset ou Set Rs = ObjetCommand.Execute
Propriétés importantes :
.ActiveCommand
.ActiveConnection
.CursorType Indique où est stocké le groupe denregistrements
.CursorType Indique la nature des actions possibles sur les engts, lecture, modif, etc
Méthodes :
.Open
.Close
.Save
.MoveNext, .MovePrevious, .MoveLast, .MoveFirst pour les déplacements
.Addnew pour créer un nouvel enregistrement
.Update Pour la mise à jour de lenregistrement
Lobjet Command :
Il est utilisé pour générer une requête auprès dune connexion. Utilisez un objet Command pour executer des mises à jours à laide de syntaxes SQL.
Déclaration : Private Cmd as Command
Initialisation : Set Cmd = New Command
Propriétés :
.ActiveConnection
.CommandText La syntaxe SQL
.CommandType Un objet command peut être une procédure stockée ou une requête temporaire ou encore une table.
Méthodes :
.Execute
.Cancel
Créer
une fenêtre de consultation et M.A.J. de données :
Se connecter :
Il est toujours possible dexploiter le contrôle DATA. Limplantation de ce contrôle sur une feuille VB entraine linscription automatique de la bibliothèque de type " Microsoft DAO 3.51 Object Library ".
Profitez donc de VB6 et ADO, utilisez un concepteur Data Environment. Il sagit dune interface graphique qui vous épargne la mise au point dun code de connexion. Ce code sera implanté lors de la compilation par le concepteur et non par vous.
1.Dans le menu Projet, demandez lajout dun concepteur Data Environment. Ceci inscrit immédiatement les bibliothèques " Microsoft Data Environment Instance 1.0 " et " Microsoft ActiveX Data Objects Library 2.0 " dans les références de votre projet.
2.Assurez que la fenêtre du concepteur Data Environment est sélectionnnée et nommez le concepteur " DE ". Le nom du concepteur sera utilisé comme nom de source de données pour tous les contrôles dits " dépendants ".
3. " DE " est votre source, mais les données sont fournies par des connexions. Sélectionnez lobjet Connection1. Nommez le Cnx (cest plus court ). Faîtes un clic bouton droit dessus et demandez " Propriétés ". Une boîte de dialogue vous demande :
Le fournisseur OLE DB. Il sagit dune bibliothèque de paramètres permettant dexploiter la technologie OLE DB avec le type de base que vous souhaitez accèder. Ici, choisissez " Microsoft Jet 3.51 OLE DB Provider ".
Le nom de la base : Utilisez le bouton de parcours ( ) pour désigner la base Nwind.mdb présente dans le dossier de VB. Cliquez ensuite sur le bouton " Tester la connexion " pour vérifier.
Vous disposez désormais dun accès à une base, mais vous navez pas encore de données.
4.Extraire des données avec une " Commande ". Cliquez sur le bouton " Nouvelle commande ". Définissez ses propriétés à laide de la commande propriété du menu contextuel. Dans longlet Général, choisir type dobjet Table et Nom dobjet Clients.
Validez.
La fenêtre du DE vous affiche désormais une connexion, une commande et tous ses champs.
5.Créer la feuille de données. Faîtes glisser les champs de la commande de la fenêtre DE vers une feuille VB. Des texboxes apparaissent. Examinez leurs propriétés DataSource (=DE), DataMember (=Command1) et DataField (=NomDuChamp).
Vous avez désormais une fenêtre de consultation des enregistrements de la table clients. Mais pour progresser entre les enregistrements, il vous faut des boutons qui exploiteront les méthode de lobjet DE et de son sous objet rsClients qui correspond au jeu des enregistrements issus de lobjet commande " Command1 ".
Ex : DE.rsCommand1.MoveNext pour se déplacer vers le prochain.