Comment faire pour accéder à SQL Server dans des pages ASP

Traductions disponibles Traductions disponibles
Numéro d'article: 169377 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment établir des connexions à SQL Server dans un script ASP à l'aide d'objets ADO (ActiveX Data Objects), tout en tirant parti de la fonctionnalité de groupement de connexions d'ODBC 3.0.



Plus d'informations

Groupement de connexions

Activez le groupement de connexions ODBC.
Pour plus d'informations sur le groupement de connexions et pour obtenir des instructions sur la façon d'activer cette fonctionnalité, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
164221 Comment faire pour activer le groupement de connexions dans une application ODBC

DSN ODBC

À l'aide de l'Administrateur ODBC, créez un nom de source de données (DSN, Data Source Name) Système sur l'ordinateur où Microsoft Internet Information Server (IIS) est installé. Spécifiez l'attribut de connexion une fois, puis réutilisez-le sur chaque page. Par exemple, dans l'événement Session_OnStart dans le fichier Global.asa, définissez l'attribut de connexion de la manière suivante :
   Session("ConnectionString") =
   "dsn=SQLSysDSN;uid=<username>;pwd=<strong password>;DATABASE=pubs;APP=ASP Script"				
Assurez-vous que toutes les conditions suivantes sont remplies :
  • La zone Connexion approuvée n'est pas sélectionnée dans la définition du DSN Système.
  • Le mode de sécurité SQL Server n'est pas le mode de sécurité intégrée à Windows NT.
  • Dans l'attribut de connexion, l'uid n'est pas vierge.
Autrement, une connexion à SQL Server peut échouer et le message d'erreur suivant s'affiche :

Erreur '80004005' du fournisseur Microsoft OLE-DB pour les pilotes ODBC
[Microsoft][Pilote ODBC SQL Server][SQL Server]Échec de la connexion- Utilisateur : _
Raison : Non défini comme un utilisateur valide d'une connexion sécurisée SQL Server.

Global.asa

L'utilisation du fichier Global.asa est facultative. À la place, les entrées effectuées en général dans ce fichier peuvent être mises sur la première page appelée par l'application. En supposant que les scripts ASP se trouvent dans un dossier qui n'est pas défini comme répertoire virtuel dans le Gestionnaire des services Internet, mais sous un autre répertoire virtuel, le fichier Global.asa qui contient des variables de session et des définitions de DSN doit être conservé dans le répertoire virtuel. Sinon, le message d'erreur suivant s'affiche :

Erreur '80004005' du fournisseur Microsoft OLE-DB pour les pilotes ODBC
[Microsoft][Gestionnaire de pilotes ODBC] Source de données non trouvée et
nom de pilote non spécifié

Connexions dans le script ASP

Tirez parti du groupement de connexions en ouvrant et en fermant la connexion à la base de données sur chaque page serveur active. Pour ouvrir la connexion, tapez les instructions suivantes dans la section <Body> de la page :
   <%
   Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
   OBJdbConnection.Open Session("ConnectionString")   %>
Pour fermer la connexion, placez le code suivant juste après la balise </Body> :
   <%
   OBJdbConnection.Close
   Set OBJdbConnection = Nothing
   %>				
Vous pouvez recevoir les deux messages d'erreur suivants si les paramètres de connexion ne sont pas définis correctement tel que décrit plus haut dans cet article :

Erreur '80004005' du fournisseur Microsoft OLE-DB pour les pilotes ODBC
[Microsoft] [Pilote d'ODBC SQL Server] [DBNMPNTW]Connexion interrompue.
- ou -

Erreur '80004005' du fournisseur Microsoft OLE-DB pour les pilotes ODBC
[Microsoft][Pilote d'ODBC SQL Server]Échec de la liaison de communication

Voici un exemple d'application constituée des fichiers Global.asa et Authors.asp. Cet exemple d'application retournera quatre colonnes et tous les enregistrements de la table pubs nommés authors.

Remarque Vous devez affecter à UID <username> et pwd =<strong password> les valeurs correctes avant d'exécuter ce code. Assurez-vous que l'UID possède les autorisations correctes pour exécuter cette opération sur la base de données.

Global.asa
   <SCRIPT LANGUAGE=VBScript RUNAT=Server>
   Sub Session_OnStart
   Session("ConnectionString") =
   "DSN=SQLSysDSN;UID=<username>;PWD=<strong password>;DATABASE=pubs;APP=ASP script"
      Session("ConnectionTimeout") = 15
      Session("CommandTimeout") = 30
   End Sub

   Sub Session_OnEnd

   End Sub
   </SCRIPT>				
Authors.asp
   <HTML>
   <HEAD>
   <TITLE>All Authors</TITLE>
   </HEAD>
   <BODY BGCOLOR="#FFFFFF">

   <% Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
   OBJdbConnection.ConnectionTimeout = Session("ConnectionTimeout")
   OBJdbConnection.CommandTimeout = Session("CommandTimeout")
   OBJdbConnection.Open Session("ConnectionString")
   Set SQLStmt = Server.CreateObject("ADODB.Command")
   Set RS = Server.CreateObject ("ADODB.Recordset")
   %>

   <p>
   <table border="0" bordercolor="#000000">
   <%
   SQLStmt.CommandText = "select * from authors"
   SQLStmt.CommandType = 1
   Set SQLStmt.ActiveConnection = OBJdbConnection
   RS.Open SQLStmt

   Do While Not RS.EOF
   %>
   <TR>
      <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("au_id") %>
         </FONT></TD>
      <TD></TD>
         <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("au_lname")  %>
         </FONT></TD>
      <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("au_fname")  %>
         </FONT></TD>
      <TD Width = 150 ALIGN=LEFT>
         <FONT SIZE=+1>
         <%= RS("phone")  %>
         </FONT></TD>
   </TR>
   <%
   RS.MoveNext
   Loop
   %>
   </table>
   <hr>
   <p>
   </BODY>
   <% OBJdbConnection.Close
   Set OBJdbConnection = Nothing
   %>
   </HTML>				
Pour plus d'informations sur les pages ASP, reportez-vous au Guide fourni par le programme d'installation ASP sur le serveur IIS.

Références

Vous n'avez pas trouvé de réponse à votre question ? Consultez les Groupes de discussion Microsoft SQL Server à l'adresse suivante (en anglais) :
Groupes de discussion Microsoft SQL Server
Si vous avez des commentaires à ce sujet ou sur d'autres articles de la Base de connaissances Microsoft, envoyez-nous un message à l'adresse suivante : Q169377

Propriétés

Numéro d'article: 169377 - Dernière mise à jour: dimanche 15 mai 2011 - Version: 11.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2000 Standard
  • Microsoft SQL Server 7.0 Standard
  • Microsoft SQL Server 6.5 Édition Standard
  • Microsoft SQL Server 6.0 Standard
  • Microsoft SQL Server 4.21a Standard
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Services 5.0
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Mots-clés : 
kbsqlserverengine kbenv kbhowto kbinterop kbtshoot KB169377
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com