- · Niveau : INTERMÉDIAIRE
- · Compatibilité : Windows NT/2000 IIS3
Si vous n’utilisez pas le système DSN (Data Source Name) pour se connecter à une base de données, une chaîne de connexion doit être passée à l’objet ADO (ActiveX Data Objects). Cette méthode est dit "DSN-Less". Il existe des centaines de chaînes de connexion selon le serveur de base de données utilisé. Ce tutoriel explique les principaux paramètres de cette chaîne de connexion ainsi que quelques exemples courants.
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. Et que la base de données doit permettre la lecture, l’écriture, l’exécution et la suppression (RWXD). Que se soit ASP ou ASP.NET, les chaînes de connexion sont les mêmes...
Paramètres courants d’une chaîne de connexion
- Provider ou Driver
Le serveur de la base de données
ex: MICROSOFT.JET.OLEDB.4.0; - Data Source
Le nom de votre base et son chemin d’accès (path)
ex: D:\inetpub\db\base.mdb; - User ID
Votre non d’usager (s’il y a lieu)
ex: User ID=usager; - Password
Votre mot passe (s’il y a lieu)
Password=motpasse;
Il existe beaucoup d’autres paramètres, voir les liens en bas de la page "Autres documents".
Exemple concrèt et Driver ODBC vs Provider OLE BD
Personnellement, j’utilise une chaîne de connexion OLE DB qui remplace l’ancien ODBC. ODBC est plus répandu mais OLE DB est reconnu pour être plus rapide alors aucune question ne se pose, utilisez OLE DB. La technique est toujours la même, vous devez construire la chaîne et la passer à l’objet ADO:
<%
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=nonDusager;Password=MotDePasse;"
objConnexion.open chaineConn
’ Traitement...
’ Fermer la connexion et détruire l’objet
objConnexion.close
set objConnexion=nothing
%>
Chaîne de connexion OLE DB typique (recommandé)
- SQL Server:
provider=SQLOLEDB.1;DataSource=CheminMonServeur;Initial Catalog=MaBaseDeDonnées;User ID=nonDusager;Password=motDePasse; - ACCESS (32 bits) :
provider=MICROSOFT.JET.OLEDB.4.0;DataSource=D:\inetpub\db\base.mdb;User ID=nonDusager;Password=motDePasse; - ACCESS 2007 (64 bits) :
provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\inetpub\db\base.accdb;User ID=nonDusager;Jet OLEDB:Database Password=motDePasse"
Merci à Lahcen MALIK - Oracle:
provider=OraOLEDB.Oracle;DataSource=D:\inetpub\db\BaseOracle;User ID=nonDusager;Password=motDePasse; - Oracle (Microsoft):
provider=msdaora;DataSource=D:\inetpub\db\BaseOracle;User ID=nonDusager;Password=motDePasse; - DB2:
provider=DB2OLEDB;Network Transport Library=TCPIP;Network Address=CheminMonServeur;Package Collection=monPackage;Host CCSID=1142;Initial Catalog=BaseDB2;User ID=nonDusager;Password=motDePasse;"
Chaîne de connexion ODBC typique (non recommandé)
- SQL Server:
DRIVER={SQL Server};server=CheminMonServeur;uid=nonDusager;pwd=motDePasse;database=baseDeDonnees; - ACCESS:
DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\inetpub\db\base.mdb;uid=nonDusager;pwd=motDePasse; - Oracle:
DRIVER={Microsoft ODBC for Oracle};Server=OracleServer.world;uid=nonDusager;pwd=motDePasse;database=baseDeDonnees; - MySQL:
DRIVER={mySQL};server=CheminMonServeur;Option=16834;Database=baseDeDonnees; - Excel:
DRIVER={Microsoft Excel Driver (*.xls)};DriverId=790;DBQ=D:\inetpub\db\fichier.xls;DefaultDir=D:\inetpub\db; - Visual Fox Pro
DRIVER={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=D:\cheminAccès\fp\Base;User ID=nonDusager;Password=motDePasse;
Conclusion
Beaucoup de chose pour une simple connexion mais souvenez vous que l’essentielle est dans cette page! Une bonne connexion "sans DSN" avec une chaîne OLE DB c’est l’idéale. Reste à trouver la bonne chaîne de connexion.
Une bonne liste de chaînes de connexion
Site officiel de ADO
Références
Autres paramètres et attributs