Microsoft – Technopoche ADO ActiveX Data Objects Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 2/17 SOMMAIRE Eléments techniques ............................................................................................................................. 3 Définition .......................................................................................................................................... 3 Architecture technologique ............................................................................................................... 4 Le modèle objet ADO ....................................................................................................................... 5 Historique des versions ..................................................................................................................... 6 Exemples de Code ............................................................................................................................ 7 Mise en œuvre du modèle objet .................................................................................................... 7 Squelettes ...................................................................................................................................... 7 Chaînes de connexion.................................................................................................................. 12 Outils de debug ............................................................................................................................... 14 Informations complémentaires liées à MDAC................................................................................... 16 Installation de la couche MDAC .................................................................................................... 16 Comment déterminer quelle version de MDAC est installée? ....................................................... 16 Remarque importante sur MDAC 2.6 ............................................................................................. 16 Où trouver des informations complémentaires? ............................................................................. 16 Référence des articles cités ................................................................................................................ 17 PREFACE Ce document a été écrit par Martine THIPHAINE, ingénieur Support Développement à Microsoft France. Il est destiné aux développeurs désirant aborder la technologie ADO. Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 3/17 Eléments techniques Définition L'ADO ou ActiveX Data Objets est un modèle objet d'accès aux données qui s'appuie sur OLEDB. Il permet d'adresser des données qui proviennent de bases de données relationnelles (SQL Server, Oracle…), ou d'autres sources de données non relationnelles telles que des fichiers texte, des sources de données non Microsoft…C'est un moyen d'accéder de manière unique à tout type de données. D’une certaine manière, on peut dire que ODBC fédère l’accès aux bases de données relationnelles, alors qu’OLEDB fédère l’accès à tous types de données, relationnelles ou non. Ce modèle objet a été introduit comme modèle d'accès aux données pour IIS. Ses principales caractéristiques sont les suivantes: Trafic minimal sur le réseau Thread Safe (supporte les accès concurrentiels ou multithread) Nombre de couches minimal entre l'application et les données Facile d'utilisation : modèle objet Automation Prise en compte des connaissances acquises par les développeurs sur les autres technologies telles que DAO ou RDO Ce document s'applique à ADO à partir de la version 2.1. Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 4/17 Architecture technologique Outils, Langages, Applications Modèles objets Visual Basic, Visual Interdev, Visual C++, Office, Internet Explorer DAO Data Access Objects RDO Remote Data Objects ADO ActiveX Data Objects APIs ODBC OLEDB Pilotes ODBC Fournisseurs OLEDB ODBC Direct APIs API Jet & Moteur JEt MSDASQL Autres Réseau (NetLib) Données Base de données Base de données Source de données Figure 1 : Architecture technologique Définition: OLEDB OLEDB est une technologie qui a pour but de résoudre certaines contraintes d'ODBC. Cette technologie autorise l'accès à tout type de données, permet de gérer l'aspect distribué des sources de données, et prend en compte les contraintes du Web. Cette technologie a pour but à terme de remplacer la technologie ODBC. ADO est le modèle objet qui permet de simplifier l'accès à cette technologie. Définition : fournisseur OLEDB (terme US:OLEDB Provider): Un fournisseur OLEDB implémente les interfaces OLEDB. Il permet à un consommateur OLEDB d'accéder à tout type de sources de données d'une façon uniforme, à travers cet ensemble d'interfaces documentées. Dans un certain sens, un fournisseur OLEDB est similaire à un driver ODBC qui fournit un mécanisme uniforme d'accès à des données relationnelles. Les fournisseurs OLEDB fournissent non seulement un mécanisme uniforme d'accès aux données relationnelles, mais également aux données non relationnelles. De plus, les fournisseurs OLEDB sont construits sur la base du modèle COM (Component Objet Model) alors les drivers ODBC sont basés sur une spécification d'APIs C. Concrètement, les fournisseurs OLEDB (terme US:OLEDB Providers) fournis permettant d'accéder à des bases de données relationnelles sont les suivants: Le Provider OLEDB pour ODBC aussi nommé KAGERA ou MSDASQL Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 5/17 Le Provider OLEDB pour SQL Server, nommé SQLOLEDB Le Provider OLEDB pour Oracle nommé MSDAORA Le Provider OLEDB pour Jet, nommé Jolt Le modèle objet ADO Le schéma suivant montre les objets et les relations existants entre les objets de ce modèle. Figure 2: Objets et Collections du modèle objet ADO Les objets Connection, Recordset et Command sont les objets les plus significatifs de ce modèle. Classiquement, une application les utilise comme suit: Objet ou Collection Objet Connection Objet Command Objet Recordset Collection Parameters Collection Errors Utilisation Permet d'établir les connexions entre le client et la source de données Permet de réaliser des commandes, telles que des requêtes SQL ou des mises à jour d'une base. Permet de voir et de manipuler les résultats d'une requête Est utilisée lorsque la requête de l'objet Command nécessite des paramètres. La collection Errors et l'objet Error sont accédés au travers de l'objet Connection, lorsqu'une erreur du fournisseur est générée. L'objet Error est différent de l'objet Err de VB, dans la mesure où il ne contient que les erreurs remontées et définies par le provider, il permet donc d'obtenir des informations précises sur la cause de l'erreur. La collection Fields et l'objet Field sont accédés au travers de l'objet Recordset, une fois que celui-ci contient des données. Collection Fields Tableau 1: Description des objets et collections La collection Properties fournit des informations sur les caractéristiques des différents objets Connection, Command, Recordset et Field. Chaque objet Property est accédé au travers de la collection Properties de chacun de ces objets. Figure 3 : Collection Properties Bien que l'ADO soit un modèle de type hiérarchique, les objets de l'ADO, sauf Error, Field et Property peuvent être créés de façon autonome, c'est-à-dire sans faire référence à l'objet parent. Ceci est différent des objets DAO et RDO, qui nécessitent dans la plupart des cas la création d’objet Parent (par exemple, un objet DAO.Connection nécessite un objet DAO.Workspace pour pouvoir être créé). ADO est un modèle objet qui propose une grande flexibilité au programmeur. Il y a donc souvent différentes possibilités pour réaliser la même tâche. Par exemple, pour exécuter une requête, il est possible d'utiliser la méthode Execute de l'objet Command ou bien de l'objet Connection. En résumé, voici un diagramme qui montre les relations entre les différents objets qui constituent l'ADO: Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 6/17 Figure 4: Relations entre les objets ADO Remarque: La version 2.5 d'ADO apporte deux nouveaux objets à ce modèle, l'objet Record et l'objet Stream qui ne sont pas détaillés ici. Historique des versions L'ADO est fournie avec la couche MDAC qui est disponible à l'adresse http://microsoft.com/data Les versions existantes sont les suivantes: MDAC 1.5a MDAC 1.5b MDAC 1.5c MDAC 1.5d MDAC 2.0 ou 2.0.3002.20 MDAC 2.0 SP1 ou 2.0.3002.23 MDAC 2.0 SP2 ou 2.0.3002.28 MDAC 2.1 MDAC 2.1 SP1 ou 2.1.1.3711.11 MDAC 2.1 SP2 ou 2.1.2.4202.3 MDAC 2.5 ou 2.50.4403.12 MDAC 2.5 SP1 ou 2.51.5303.5 MDAC 2.5 SP2 ou 2.52.6019.2 MDAC 2.6 ou 2.60.6526.3 MDAC 2.6 SP1 ou 2.61.7326.6 Dans MSDN, il existe un article qui permet de différentier les versions jusqu'à la 2.0. Cet article a pour titre: "Redistributing Microsoft Data Access Components" Ce document est accessible à l’adresse http://www.msdn.microsoft.com/library/techart/msdn_redistmdac.htm Pour plus d'informations à ce sujet, on se reportera au chapitre intitulé "Comment déterminer quelle version de MDAC est installée?" un peu plus loin dans ce document. Les principales fonctionnalités apportées par l'ADO 2.x par rapport à l'ADO 1.5 sont les suivantes: Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 7/17 Evénements générés sur les objets Connection et Recordset, ce qui permet de supporter les opérations asynchrones. (connexion asynchone, exécution de commandes en mode asynchrone, récupération de données en mode asynchrone) Persistance de l'objet Recordset: bien qu'il soit possible de gérer des recordsets de façon déconnectée avec l'ADO 1.5, il n'est pas possible de les sauvegarder sous forme de fichier pour les réutiliser lors d'un autre lancement de l'application, par exemple. ADO2.0 implémente une propriété Persist-Format et une méthode Save sur l'objet Recordset, ce qui permet de sauvegarder sur disque un Recordset créé avec l'option adLockBatchOptimistic. Ceci est notamment utilisé avec RDS, dans des applications Web. Fonctionnalités de tri et de recherches implémentées sur l'objet Recodset Possiblité de créer des recordsets indépendants : Avec l’ADO 2.0, il est possible de créer un objet Recordset, de le manipuler et de l’utiliser, indépendamment de toute source de données. Le programmeur peut ajouter des champs à ce recordset, ajouter ou modifier des données. Les principales nouveautés apportées par l'ADO 2.5 par rapport à l'ADO 2.1 sont les objets Stream et Record: objet Record: Cet objet permet d'interagir avec des sources de données possédant une structure hiérarchique, telles que fichiers et répertoires d'un système de fichier, ou dossiers et messages d'un système de messagerie. Un Record peut également représenter une ligne dans un recordset, bien que les objets Record et Recordset aient des méthodes et propriétés différentes. Ce type d'objet n'est généralement pas supporté par les sources de données traditionnelles. objet Stream: Cet objet fournit un moyen de lire, d'écrire et de gérer les données binaires ou texte. Il peut être utiliser en combinaison avec l'objet Record, et les données seront alors le contenu d'un fichier ou d'un message, ou bien indépendamment de l'objet Record, avec des sources de donnés traditionnelles, et les données seront alors le contenu d'un champ Text ou image (Blobs). Exemples de Code Mise en œuvre du modèle objet Pour utiliser l'ADO en early binding dans un programme VB ou VBA, on pensera à cocher la référence: Microsoft ActiveX Data Object x.x Library en utilisant le menu Projet Références de l'interface VB ou de l'éditeur VBA. Squelettes Dans le MSDN, il existe un article très utile pour la mise en place d'un programme de test: Il est intitulé "What Are the Objects in the ADO Object model" et est disponible sur le Web à l'adresse http://msdn.microsoft.com/library/techart/msdn_workshp1.htm. Nous allons maintenant présenter des exemples pour Ouvrir / Fermer une connexion avec une base SQL Server en utilisant le provider par défaut qui est le provider OLEDB pour ODBC Sub ConnectionExample1() Dim cn As ADODB.Connection Set cn = New ADODB.Connection ' Open the connection, specifying data source name, ' userid, and password. cn.Open "DSNPubs", "sa", "" Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 8/17 ' If the connection is open, say so. If cn.State = adStateOpen Then Debug.Print "Connection is open." End If ' Close the connection. cn.Close End Sub Ouvrir / Fermer une connexion avec une base SQL Server en utilisant le provider OLEDB pour SQL Server qui est le provider conseillé Private Sub ConnectionExemple2() Dim cn As New ADODB.Connection cn.Provider = "SQLOLEDB" cn.Open "Data Source=MySQLServerName;Initial Catalog=pubs;", "sa", "" ' If the connection is open, say so. If cn.State = adStateOpen Then Debug.Print "Connection is open." End If ' Close the connection. cn.Close Set cn = Nothing End Sub Ouvrir / Fermer un recordset Sub RecordsetExample() Dim rs As New ADODB.Recordset ' Open the recordset, specifying a SQL statement ' and a connection string. rs.Open "Select * from titles", "DSN=pubs;UID=sa" ' Loop through the recordset and print the first field. Do While Not rs.EOF Debug.Print rs(0) rs.MoveNext Loop ' Close the recordset. rs.Close End Sub Utiliser la méthode Execute de l'objet Command pour exécuter une requête de type Text Sub CommandExample() Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 9/17 Dim cmd As New ADODB.Command Dim rs As New ADODB.Recordset ' Set the command's connection using a connection string. cmd.ActiveConnection = "DSN=pubs;UID=sa" ' Set the command's text, and specify that it ' is an SQL statement. cmd.CommandText = "Select * from titles" cmd.CommandType = adCmdText ' Create a recordset by executing the command. Set rs = cmd.Execute() ' Loop through the recordset and print the first field. Do While Not rs.EOF Debug.Print rs(0) rs.MoveNext Loop ' Close the recordset. rs.Close End Sub Utiliser la méthode Execute de l'objet Command pour exécuter une procédure stockée avec paramètre. Sub ParameterExample() Dim cmd As New ADODB.Command Dim rs As New ADODB.Recordset Dim prm As ADODB.Parameter ' Set the command's connection using a connection string. cmd.ActiveConnection = "DSN=pubs;uid=sa" ' Set the command's text, and specify that it ' is an SQL statement. cmd.CommandText = "byroyalty" cmd.CommandType = adCmdStoredProc ' Set up a new parameter for the stored procedure. Set prm = cmd.CreateParameter("Royalty", adInteger, adParamInput, , 50) cmd.Parameters.Append prm ' Create a recordset by executing the command. Set rs = cmd.Execute ' Loop through the recordset and print the first field. Do While Not rs.EOF Debug.Print rs(0) rs.MoveNext Loop Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 10/17 ' Close the recordset. rs.Close End Sub Stocker les résultats d’une requête Access dans un fichier Excel : Private Sub Command1_Click() Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\bd1.mdb" cn.Execute "Select * into [Excel 8.0; Database=c:\Test1.xls;Hdr=Yes].[Sheet3] From Clients" cn.Close Set cn = Nothing End Sub Parcourir la collection Errors Sub ErrorExample() Dim cn As ADODB.Connection Set cn = New ADODB.Connection On Error GoTo AdoError ' Try and open a connection using a DSN that doesn't exist. cn.Open "MissingDSN", "sa", "" Exit Sub AdoError: Dim Errs As ADODB.Errors Dim errLoop As Error Dim strError As String ' Loop through each Error object in the ' Errors collection and display properties. Set Errs = cn.Errors For Each errLoop In Errs Debug.Print errLoop.SQLState Debug.Print errLoop.NativeError Debug.Print errLoop.Description Next End Sub Enumérer les champs (nom, type, valeur) d'un recordset Sub FieldExample() Dim rs As ADODB.Recordset Dim fld As ADODB.Field Set rs = New ADODB.Recordset Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 11/17 ' Open the recordset, specifying an SQL statement ' and a connection string. rs.Open "Select * from authors", "DSN=pubs;UID=sa" Debug.Print "Fields in Authors Table:" & vbCr ' Loop through each Field object in the ' Fields collection of the table and display properties. For Each fld In rs.Fields Debug.Print "Name: " & fld.Name & vbCr & _ "Type: " & fld.Type & vbCr & _ "Value: " & fld.Value Next fld ' Close the recordset. rs.Close End Sub Afficher les valeurs de certaines propriétés d'une connexion (parcours de la collection Properties) Sub PropertyExample() Dim cn As New ADODB.Connection Dim cmd As New ADODB.Command Dim rs As New ADODB.Recordset ' Open the connection, specifying data source name, ' userid, and password. cn.Open "pubs", "sa" ' Set the command's connection using a connection string. Set cmd.ActiveConnection = cn ' Set the command's text, and specify that it is a SQL statement. cmd.CommandText = "Select * from titles" cmd.CommandType = adCmdText ' Create a recordset by executing the command. Set rs = cmd.Execute() ' Show the ConnectionTimeout property of the connection. Debug.Print cn.Properties("Connect Timeout") ' Show the CommandTimeout property of the command. Debug.Print cmd.Properties("Command Time out") ' Show the Updatability property of the recordset. Debug.Print rs.Properties("Updatability") ' Close the recordset. rs.Close End Sub Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 12/17 Obtenir la liste des tables d'une base de données: pour obtenir des informations sur la structure de la base de données, on pourra utiliser la méthode OpenSchema de l'objet Connection (fiche Q186246 http://support.microsoft.com/support/kb/articles/Q186/2/46.asp) Public Sub OpenSchemaX() Dim cnn1 As ADODB.Connection Dim rstSchema As ADODB.Recordset Dim strCnn As String Set cnn1 = New ADODB.Connection strCnn = "Provider=sqloledb;" & _ "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; " cnn1.Open strCnn Set rstSchema = cnn1.OpenSchema(adSchemaTables) Do Until rstSchema.EOF Debug.Print "Table name: " & _ rstSchema!TABLE_NAME & vbCr & _ "Table type: " & rstSchema!TABLE_TYPE & vbCr rstSchema.MoveNext Loop rstSchema.Close cnn1.Close End Sub Chaînes de connexion Il existe un article dans le MSDN, le Q193332, intitulé "FILE:MDACCON.EXE Using Connection Strings w/ ODBC/OLEDB/ADO/RDS" qui fournit toutes les chaînes de connexion pour les différents providers, ou drivers ODBC avec DSN ou non. Cet article est accessible sur le Web à l’adresse http://support.microsoft.com/support/kb/articles/Q193/3/32.asp. Après avoir visualisé cet article, il suffit de faire un copier / coller de la chaîne de connexion nécessaire à l'application. Trucs et Astuces: Si vous avez besoin d'écrire une chaîne de connexion, il est possible de la générer avec l'assistant de création d'une connexion de données. On peut utiliser cet outil de création de connexions de données dans VB: Utiliser le menu Affichage fenêtre de données de l'interface VB Créer un Environnement de données en cliquant sur le 2ème bouton de la fenêtre de données Dans la fenêtre Environnement de données, utiliser le clique droit sur l'item Connection1 pour saisir les caractéristiques de la connexion (Provider, DSN, propriétés spécifiques). Tester le connexion avant de cliquer sur le bouton OK Aller dans la fenêtre des propriétés et sélectionner l'objet connection1: La propriété DataSource contient la chaîne de connexion désirée. Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 13/17 Figure 5: Propriétés des liaisons de données: écran 1 Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 14/17 Figure 6: Propriétés des liaisons de données: écran 2 On peut également utiliser cet outil de création de données sur le bureau: Clic droit sur le bureau, sélectionner Nouveau Microsoft Data Link Clic droit sur l'objet créé Propriétés. Saisir les caractéristiques de la connexion, et la tester avant de la valider. Ouvrir Notepad, et Glisser / Déplacer l'objet Microsoft Data Link créé du bureau sur Notepad. Notepad contient alors la chaîne de connexion désirée. Outils de debug Souvent, pour debugger les problèmes liés à ADO, le debug classique via VB de l'application n'est pas suffisant. Certains outils fournis en standard permettent d'obtenir des traces de ce qu'il se passe entre le poste client et le poste serveur. Traces ODBC: Si le fournisseur OLEDB pour ODBC est utilisé, il peut être utile de mettre en œuvre les traces ODBC. Pour cela, il suffit de lancer dans le panneau de configuration le programme représenté par l'icône "Sources de données ODBC", et dans l'onglet "Pas à Pas", appuyer sur le bouton "Démarrer le traçage". On peut spécifier le chemin et le nom du fichier Log où seront stockées les traces. Ce fichier généré est un fichier texte. Figure 7: Traces ODBC Traces OLEDB: Nous l'avons vu, lorsque ODBC est utilisé, il est possible de mettre en place un système de traces ODBC. Il n'existe pas d'outil équivalent pour tracer finement les actions réalisées par les composants ADO ou OLEDB. Ouverture / Fermeture de connexion avec un serveur SQL Server: Il existe des outils livrés en standard avec SQL Server, qui permettent de visualiser ce qu'il se passe exactement sur le serveur. Il s'agit de SQLTrace livré avec SQL Server 6.5, ou bien du générateur de profils livré avec SQL Server 7 ou SQL Server 2000. Ces outils peuvent être utilisés par exemple pour visualiser très simplement les ouvertures et fermetures de connexions générées par un Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 15/17 programme client. On se connecte au serveur, et on créé un filtre pour analyser ce qu'il se passe entre le client et le serveur. Analyses des trames entre le client et le serveur: Pour visualiser finement les paquets de données qui transitent entre le client et le serveur, un outil peut être installé et utilisé. Il s'agit du Network Monitor. Une version limitée est livrée en standard avec NT. Il suffit de l'installer en lançant dans le panneau de configuration le programme représenté par l'icône "Réseau" et dans l'onglet Services Cliquer sur le bouton "Ajouter" pour ajouter le services suivant: Agent et outils du moniteur Réseau (Network Monitor Tools and Agent) Une version plus compète de l'outil est livrée avec SMS et est recommandée. Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 16/17 Informations complémentaires liées à MDAC Installation de la couche MDAC Télécharger la couche MDAC depuis l'adresse http://www.microsoft.com/data Comment déterminer quelle version de MDAC est installée? Plusieurs méthodes sont possibles: Un document concernant la description des anciennes versions (jusqu'à la version 2.0) est disponible à l'adresse http://www.msdn.microsoft.com/library/techart/msdn_redistmdac.htm On pourra consulter les Release Manifests, ou la fiche Q243069, disponible à l'adresse http://support.microsoft.com/support/kb/articles/q243/0/69.asp, et en déduire la version installée en choisissant quelques Dlls et en vérifiant leur version. Ce tableau pourra aider à trouver les Release Manifests suivant la version de MDAC concernée: NOM MDAC 2.6 SP1 ou 2.61.7326.6 MDAC 2.6 ou 2.60.6526.3 MDAC 2.5 SP2 ou 2.52.6019.2 MDAC 2.5 SP1 ou 2.51.5303.5 MDAC 2.5 ou 2.50.4303.12 MDAC 2.1 SP2 ou 2.1.2.4202.3 MDAC 2.1 SP1 ou 2.1.1.3711.11 MDAC 2.1 MDAC 2.0 SP2 ou 2.0.3002.28 MDAC 2.0 SP1 ou 2.0.3002.23 MDAC 2.0 ou 2.0.3002.20 URLS http://microsoft.com/data/mdac26info/Manifest26sp1.htm http://microsoft.com/data/mdac26info/Manifest26RTM.htm http://microsoft.com/data/mdac25info/MDAC25SP2Manifest.htm http://microsoft.com/data/mdac25info/MDAC25SP1Manifest.htm http://microsoft.com/data/mdac25info/MDAC25rtmmanifest.htm http://microsoft.com/data/MDAC21info/MDAC21sp2manifest.htm http://support.microsoft.com/support/kb/articles/Q238/2/39.ASP http://microsoft.com/data/MDAC21info/MDAC21GAmanifest.htm http://microsoft.com/data/mdac21info/21035132manifest.htm http://support.microsoft.com/support/kb/articles/Q232/0/53.ASP http://microsoft.com/data/download/20sp2readme.htm http://support.microsoft.com/support/kb/articles/Q222/1/29.ASP http://microsoft.com/data/download/20sp2readme.htm Tableau 2 : MDAC et Release Manifests On peut aussi télécharger un utilitaire nommé "Component Checker" depuis http://microsoft.com/data dans la rubrique download. Remarque importante sur MDAC 2.6 MDAC 2.6 ne livre plus les composants Jet, comme cela est précisé dans la fiche technique suivante http://support.microsoft.com/support/kb/articles/Q271/9/08.ASP. Pour installer les composants Jet, on se reportera à la fiche technique http://support.microsoft.com/support/kb/articles/Q239/1/14.ASP. Où trouver des informations complémentaires? Fichiers Readme.txt: Penser à toujours lire les Readme fournis avec les produits ou les version de MDAC téléchargées. C’est une mine d'informations pas toujours disponibles dans l'aide en ligne. Ouvrages: On pourra consulter par exemple ADO 2.x Programmer's Reference WROX Hitchhiker's Guide VB and SQL Server Microsoft Press Programming ADO Microsoft Press Professional Visual Basic Databases WROX Professional ADO 2.5 Programming WROX Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0 17/17 Référence des articles cités Tour d'horizon: "The ADO Object Model" (Technical article) Pour naviguer dans le modèle objet: http://msdn.microsoft.com/library/default.asp?url=/library/enus/ado270/htm/mdmscadoapireference.asp Versions de MDAC et des fichiers livrés: "Redistributing Microsoft Data Access Components" http://www.msdn.microsoft.com/library/techart/msdn_redistmdac.htm Exemples de code: "What Are the Objects in the ADO Object model" http://msdn.microsoft.com/library/techart/msdn_workshp1.htm Chaînes de connexions: Q193332 : http://support.microsoft.com/support/kb/articles/Q193/3/32.asp Utilisation de la méthode OpenSchema en VB: Q186246 : http://support.microsoft.com/support/kb/articles/Q186/2/46.asp Microsoft France Auteur Date de révision Version : Martine THIPHAINE : 26/09/01 : 2.0