Trucsweb.com

Trucsweb 1997-2017 - 20 ans de partage.

ASP

ActiveX® Data Objects (ADO)

RDFFav

Chaînes de connexion ODBC et OLE DB - SQL Server, Access, Oracle, BD2, Foxpro, MySQL, Excel...

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é.sql chaîne chaine connexion connect SQL Server Access Oracle BD2 Foxpro MySQL Excel ODBC OLE DB OLEDB DSN Data Source Name ado ActiveX Data Objects DSN-Less dsnless RWXD Microsoft jet Data Source Provider Driver
  • · 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

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

Commentaires

  • Bonjour je souhaite me connecter a Oracle avec un script vbscript mais il faut que je me connecte avec les droit / as sysdba est ce que tu aurais une solution a mon problème ? ç a fais deux semaines que je cherche et je n'ai rien trouvé... Merci d'avance Galene
    64x64
    Galene

    (UTC +0000)

    • Pour connecter une base de données MS Access menée d'un mot de passe avec C# : Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DentistDB.accdb;User ID=Admin;Jet OLEDB:Database Password=mot de passe"
      64x64
      Lahcen MALIK

      (UTC +0000)
      • Salut, Effectivement, en fait depuis 17 ans les choses ont bien changé. Notamment les architectures 64 bits! Cette page commence à vieillir sérieusement! C'est seulement le moteur (provider) qui a changé. Noter que le JET (joint Engine Technology) fonctionne encore très bien et d'ailleurs la compatibilité de ACE n'est pas complète. Notamment avec les versions 97. Mais ACE (Office Access Connectivity Engine ou Access Database Engine ou mieux encore le « ACE Database Engine ») est le nouveau « provider » depuis Microsoft Access 2007. En fait, le moteur JET fonctionne seulement sur une architecture de 32 bits alors que ACE fonctionne nativement sous une architecture 64 bits. Par contre, il n'est pas installé par défaut. Il faut l'installer manuellement. Il est disponible ici « Moteur de base de données Microsoft Access 2010 redistribuable » (https://www.microsoft.com/fr-FR/download/details.aspx?id=13255). Merci.
        64x64
        oznog
        http://www.trucsweb.com
        (UTC +0000)
        • J'oubliais, ACE ouvre les vielles versions ACCESS (mdb) mais les converties en nouveau format (accdb)...
          64x64
          oznog
          http://www.trucsweb.com
          (UTC +0000)



      • bonjour.j'ai exporté ma base access en .mdb sous format .accdb afin d'effectuer des champs calculés. depuis des années , j'utilise une chaine de connexion mais n'en ayant pas la maitrise, je voudrais écrire directement ma chaine de connexion dans ma page ASP. et j'obtiens un message "impossible de trouver le fournisseur" est ce que cela veut dire que les pilotes ne sont pas installés sur le serveur ou autre ? merci cijoint: objConnectBE.ConnectionString="provider=Microsoft.ACE.OLEDB.12.0;DataSource=\\monserveur\database\indispo2000.accdb" objConnectBE.CommandTimeout=60 objConnectBE.Open set R1.ActiveConnection = objConnectBE
        64x64
        PESCHEL

        (UTC +0000)
        • Salut, Il faudrait idéalement le message d'erreur exact. Moi je le réinstallerais tout simplement : https://www.microsoft.com/en-us/download/details.aspx?id=13255 1. Tu peux vérifier si il est dans le registre : HKCR\Microsoft.ACE.OLEDB.12.0 2. Vérifie le Pool de l'application, s'il utilise x64 ou 32 bit. Le «provider» doit utiliser le même. 3. On mentionne sur les forum une autre méthode: 1. téléchargez et installez : http://www.microsoft.com/download/en/confirmation.aspx?id=23734 2. Dans VS, cliquez sur « Ajouter une source de données » (add data source).
          64x64
          oznog
          http://www.trucsweb.com
          (UTC +0000)


               Visites : 47663 - Pages vues : 174358
        X

        Trucsweb.com Connexion

        X

        Trucsweb.com Mot de passe perdu

        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