Tutoriels Trucsweb
          

Consulté 37,226 fois

 

ActiveX® Data Objects (ADO)

Connection à une base de données (ADO) - Avec DSN, Sans DSN, ODBC et OLEDB

Django (Oznog) Blais, Trucsweb (15 octobre 2001)


  • · Niveau : INTERMÉDIAIRE
  • · Compatibilité : Windows NT/2000 IIS3

Vos recherches d’optimisation et de rapidité vous feront découvrir à quel point la grande famille des objets ADO (ActiveX Data Objects) pour manipuler des bases de données est loin d’être simple. Dans ce tutoriel je vais m’éfforcer de vulgariser et de résumer les grandes lignes de la connexion via ADO tout en vous suggérant les méthodes les plus efficaces.

Schéma ADO

Il s’agit en fait de se connecter à un serveur ou "provider" de base de donnée en lui indiquant le chemin d’accès d’une base, un nom d’usager et son mot de passe, pour qu’il ouvre la base. Rien de plus... Ce qui complique la tâche c’est les techniques possibles, technique redondante, résidante en mémoire, empilée dans les registres, désuette etc. Elles ont toute en commun de se connecter à une base de données, ce qui les diffères en bout de ligne c’est la rapidité et l’efficacité. Mais le principe est toujours de céer son objet ADO, de le traiter et de le détruire.

<%
  Dim objConnexion

  ’ Créer l’objet ADO
  Set objConnexion = Server.CreateObject("ADODB.Connection")

  ’ Ouvrir la connexion avec ou sans DSN et traitement...

  ’ Détruire l’objet
  set objConnexion=nothing
%>

 

DSN ou Sans DSN
Les informations sur la base doivent être transmises à l’objet ADO à l’aide d’une de ses 3 méthodes. L’enjeu, la simplicité !! Hé oui, l’utilisation d’un service DSN (Data Source Name) permet peut-être de simplifier les connexions mais entraîne inévitablement un traitement de plus a chaque connexion. Je n’entrerais pas dans le débat qui suscite beaucoup d’intérêt.

 

SYSTEM DSN (Data Source Name) - Déconseillé
Très répandu, il permet une connexion en utilisant un "nom virtuel" défini sur le serveur. Il s’agit en fait d’un "pont" vers le serveur de base de données (Provider) que vous devez déclarer sur le serveur. Plus simple à configurer, à programmer mais c’est tout de même un "pont" de plus qui nécessite un accès au registre... Si vous n’avez pas le choix ou si vous débutez, c’est la solution idéale.

<%
  Dim objConnexion

  ’ Créer l’objet ADO
  Set objConnexion = Server.CreateObject("ADODB.Connection")

  ’ Ouvrir la base avec DSN
  ’ "BaseVirtuelle" doit être défini sur le serveur via "ODBC 32 bits"
  objConnexion.open "BaseVirtuelle"

  ’ Traitement...

  ’ Fermer la connexion
  objConnexion.close

  ’ Détruire l’objet
  set objConnexion=nothing
%>

J’aime bien mettre ma chaîne de connexion dans une variable. Dans l’exemple suivant, j’ai ajouté un nom d’usager et un mot de passe.

strConn="chaineConn = BaseVirtuelle;uid=usager;pwd=motpasse"
Conn.open strConn

NOTE: Pour déclarer votre base de données sur le serveur, aller dans le Panneau de configuration > ODBC 32 bits, ou Control Panel > ODBC Data Sources 32 bits (Pour Win2000 Control Panel > Administrative Tools > Data Sources (ODBC)), puis cliquez sur l’onglet DSN système (System DSN). Cliquez ensuite sur le bouton ajouter (add), puis sur Microsoft Access Driver (*.mdb), puis Terminer (finish). Entrer dans "Nom de la source de Données" (Data source name) le nom de votre base virtuelle, puis avec le bouton sélectionner (Select...), localisez votre base sur le disque dur.

 

Fichier DSN - Déconseillé
C’est tout simplement un fichier ASCII qui contient les informations du DSN. Ce n’est vraiment pas recommandé pour un site largement fréquenté. De plus il faut à chaque connexion, ouvrir, lire et fermer un fichier ASCII. La déclaration se fait aussi par le Panneau de configuration > ODBC 32 bits...

<%
  Dim objConnexion

  ’ Créer l’objet ADO
  Set objConnexion = Server.CreateObject("ADODB.Connection")

  ’ Ouvrir la base avec DSN
  ’ Le fichier "base.dsn" doit être créé sur le serveur via "ODBC 32 bits"
  objConnexion.open "FILEDSN=D:\cheminDaccès\base.dsn; Uid=Admin;Pwd=motDePasse;"

  ’ Traitement...

  ’ Fermer la connexion
  objConnexion.close

  ’ Détruire l’objet
  set objConnexion=nothing
%>

 

DSN-Less (Sans DSN) - Conseillé
C’est la meilleure solution mais qui demande une bonne connaissance des chaînes de connexion puisque vous n’avez pas à déclarer la base de données dans le DSN du serveur. C’est dire que vous devez envoyer vous-même ce que le DSN envoie. Sachez que chaque base à son propre "Driver ODBC" ou "Provider OLE DB" donc sa propre chaîne de connexion. Noter qu’une base de données qui utilise ce type de connexion devrait toujours être déposée sur le serveur SOUS la racine Web pour éviter d’être disponible en téléchargement.

<%
  Dim objConnexion, chaineConn

  ’ Créer l’objet ADO
  Set objConnexion = Server.CreateObject("ADODB.Connection")

  ’ Ouvrir la base sans DSN avec chaîne de connexion
  chaineConn = "provider=MICROSOFT.JET.OLEDB.4.0; DataSource=D:\inetpub\db\base.mdb;User ID=??;Password=??;"
  objConnexion.open chaineConn

  ’ Traitement...

  ’ Fermer la connexion et détruire l’objet
  objConnexion.close
  set objConnexion=nothing
%>

 

Puisque c’est la méthode conseillée, je vous invite à poursuivre avec la lecture de:
"Chaînes de connexion ODBC et OLE DB"

 

Note sur DAO et RDO
DAO (Data Access Objects) et RDO (Remote Data Objects) sont de vielles techniques utilisées à la manière de ADO pour se connecter sur une base de données via ODBC (Open DataBase Connectivity). Elles ne sont plus utilisées alors pas la peine d’en savoir plus. Sachez seulement qu’elles peuvent avoir cours encore aujourd’hui notamment dans certains tutoriels. ODBC est lui aussi menacé de disparaître, La dernière technologie est donc OLE DB. Noter en terminant que bien qu’ADO soit utilisé pour communiquer avec OLE DB vous pourriez directement communiquer avec OLE DB sans passer par ADO, ce qui demande bien sûr une plus grande connaissance des OLE DB de chaque base de données...


.

Partager | Print AmiE Haut de page
[Mod] Dernière mise à jour : 2010-12-29
TrucswebTrucsweb



sp
 S U R   L E   S U J E T 
sp
ActiveX® Data Objects (ADO) - Trucsweb
Connection à une base de données (ADO) - Avec DSN, Sans DSN, ODBC et OLEDB
ActiveX® Data Objects (ADO) - Introduction aux ADO
Propriétés et Méthodes - Avec le fichier ADOVBS
Ferner et vider - Ne jamais oublier de fermer une base
Mise à jour (Update) - Mise à jour d’une base
Requêtes/Recordsets - La recherche et le résultat
Jointures et relations INNER, LEFT, RIGHT, UNION... Optimiser la recherche et l’interrogation de bases de donnée
Cursor et LockType - Optimiser vos requêtes
Chaînes de connexion ODBC et OLE DB - SQL Server, Access, Oracle, BD2, Foxpro, MySQL, Excel...
Syndication du sujet
Rechercher un tutoriel!
 
 
sp
 T U T O R I E L S 
sp
· ASP / VBscript
· C/C++
· CSS
· DHTML
· CGI / Perl
· HTML
· Java/JSP
· Javascript
· PHP
· SSI
· WAP/WML
· XML/XSL
· Infographie
· Flash et Shockwave
· Audiovisuel
· Hébergement
· Analyses de logiciels
· Internet et Protocoles
· Veille intégrée
· Référencement
· Sécurité
· Outils gratuits
 
sp
 F O R U M S 
sp
· Forum Javascript
· Forum HTML/CSS
· Forum ASP/VBScript
· Forum Flash
· Tous les forums
 
sp
 S E R V I C E S 
sp
Generateur Trucsweb
· Générateur
· Répertoire
· Logithèque
· Glossaire
· Forum
· Nouveautés Dev Zone
· Ajouter un site
· Ajouter un logiciel
· Ajouter un tutoriel
· Fil d'info sur votre site
· Tester votre site
 
sp
 A P P L I C A T I O N S 
sp
· twCompteur 1.0 sp
· twCalende 1.0 sp
· twLiMenu 1.0 sp
· twValide 2.2 sp
· twAliste 1.0 sp
· twASPDate 2.0 sp
· twASPLivre 1.0 sp
 
sp
 R É F É R E N C E S 
sp
· W3C HTML 4.0
· W3C XHTML 1.0
· Web Design Group
· W3C SMIL 2.0
· W3C XML 1.0
· XML Cover Pages
· W3C CSS LEVEL 2
· Netscape Javascript 1.5
· Netscape Javascript 1.4
· Netscape Javascript 1.3
· Netscape DHTML
· Gecko DOM ref.
· IE DHTML
· VBScript Language Ref.
· JScript Language Ref.
· ASP Object Quick Ref.
· ADO API Reference
· Microsoft IIS5
· MSDN Library
· RFC Editor Site
· HTML 4.0 code de caractères
· Unicode fonts
· Manuel PHP
· Documentation Perl
· Perl 5 Reference Guide
· Flash actionscript FAST
· ActionScript dictionary
· MySQL Manual
· SQL Pro (F. Brouard)
· Java Language Spec.
· Java 2 SDK Doc. V1.3.1
· JavaServer Pages Ref.
· C/C++ Language Ref.
· Python Library Reference
· Les Navigateurs
· Terminologie d'Internet
· Traduction
· Traduction systran
· Traduction d'interface client
· Extensions de fichiers
· Virus Wildlist
· Virus Alerts
 
sp
 P U B 
sp
 
sp
 C O P Y R I G H T  
sp

 

accueil | tutoriels | logithèque | répertoire | forum



© 1997-2011
Django (Oznog) Blais
Rivière-du-Loup, Québec
Ajouter à votre Sidebar  RSS 1.0
 
Conception Oznog co. Multimédia

Hit-Parade    Tout navigateurs   

516 visiteurs