Trucsweb.com

ASP

ActiveX® Data Objects (ADO)

RDFFav

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

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...ActiveX Data Objects ADO active data objects connection DSN DSN-Less ODBC OLEDB OLE DB serveur de base provider driver ADODB.Connection nothing Data Source Name DSN files FILEDSN open close DAO RDO

  • · 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...

Django (Oznog) Blais
Dernière mise à jour :

Commentaires

10/10 sur 1 revues.
       Visites : 5839 - Pages vues : 43779
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@