Zugreifen auf SQL Server in Active Server Pages

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 169377
Dieser Artikel wurde zuvor veröffentlicht unter D35954
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
169377 How to access SQL Server in Active Server Pages
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

In diesem Artikel wird beschrieben, wie Sie mithilfe von ActiveX-Datenobjekten (ADO) Verbindungen mit SQL Server innerhalb eines ASP-Skripts herstellen und dabei das Verbindungs-Pooling von ODBC 3.0 nutzen.



Weitere Informationen

Verbindungs-Pooling

Aktivieren Sie das Verbindungs-Pooling in ODBC.
Allgemeine Informationen zu dieser Funktion und eine Anleitung zu ihrer Aktivierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
164221 INFO: Aktivieren des Verbindungsspoolings in einer ODBC-Anwendung

DSN für ODBC

Erstellen Sie im ODBC-Administrator einen System-DSN auf dem Computer, auf dem Microsoft Internet Information Server (IIS) installiert ist. Geben Sie einmal das Verbindungsattribut an, und verwenden Sie es auf jeder Seite wieder. Geben Sie beispielsweise in der Datei "Global.asa" im Ereignis Session_OnStart das Verbindungsattribut folgendermaßen an:
   Session("ConnectionString") =
   "dsn=SQLSysDSN;uid=<username>;pwd=<strong password>;DATABASE=pubs;APP=ASP Script"				
Vergewissern Sie sich, dass alle folgenden Bedingungen zutreffen:
  • Das Kontrollkästchen Vertraute Verbindung verwenden in der Definition des System-DSN ist nicht aktiviert.
  • Als Sicherheitsmodus für SQL Server ist nicht "Windows NT-integriert" ausgewählt.
  • Der Wert "uid" im Verbindungsattribut ist nicht leer.
Andernfalls kann eine Verbindung mit SQL Server mit folgender Fehlermeldung fehlschlagen:

Fehler '80004005' bei Microsoft OLE DB-Provider für ODBC-Treiber
[Microsoft][ODBC-SQL Server-Treiber][SQL Server]Anmeldung fehlgeschlagen- Benutzer: _
Grund: Nicht als gültiger Benutzer einer vertrauten SQL Server-Verbindung definiert.

Global.asa

Die Verwendung der Datei "Global.asa" ist optional. Als Alternative können Sie die Einträge, die Sie sonst in der Datei vornehmen würden, auch auf die erste von der Anwendung aufgerufene Seite stellen. Unter der Voraussetzung, dass die ASP-Skripts sich in einem Verzeichnis befinden, das nicht als virtuelles Verzeichnis innerhalb des Internetdienst-Managers definiert ist, sondern als Unterordner eines anderen virtuellen Verzeichnisses, muss die Datei "Global.asa", die Sitzungsvariablen und DSN-Definitionen enthält, im virtuellen Verzeichnis gespeichert sein. Andernfalls wird folgende Fehlermeldung ausgegeben:

Fehler '80004005' bei Microsoft OLE DB-Provider für ODBC-Treiber
[Microsoft][ODBC-Treibermanager] Name der Datenquelle nicht gefunden und kein
Standardtreiber angegeben

Verbindungen im ASP-Skript

Nutzen Sie das Verbindungs-Pooling, indem Sie die Verbindung mit der Datenbank auf jeder Active Server-Seite öffnen und schließen. Um die Verbindung zu öffnen, geben Sie folgende Anweisungen im Abschnitt <Body> der Seite ein:
   <%
   Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
   OBJdbConnection.Open Session("ConnectionString")   %>				
Um die Verbindung zu schließen, geben Sie Folgendes unmittelbar nach dem Tag </Body> ein:
   <%
   OBJdbConnection.Close
   Set OBJdbConnection = Nothing
   %>				
Sind die Verbindungseinstellungen nicht ordnungsgemäß wie oben beschrieben definiert, können folgende Fehlermeldungen angezeigt werden:

Fehler '80004005' bei Microsoft OLE DB-Provider für ODBC-Treiber
[Microsoft][ODBC-SQL Server-Treiber][DBNMPNTW]Verbindung unterbrochen.
-oder-

Fehler '80004005' bei Microsoft OLE DB-Provider für ODBC-Treiber
[Microsoft][ODBC-SQL Server-Treiber]Verbindungsaufbau gescheitert.

Die folgende Beispielanwendung besteht aus "Global.asa" und "Authors.asp". Sie gibt vier Spalten und alle Datensätze in der Tabelle pubs zurück, die Authors heißen.

Hinweis: Sie müssen UID <username> und pwd =<strong password> auf die richtigen Werte ändern, bevor Sie diesen Code ausführen. Vergewissern Sie sich, dass UID die erforderlichen Berechtigungen für diese Datenbankoperation hat.

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>				
Weitere Informationen zu Active Server Pages finden Sie im Wegweiser des ASP-Installationsprogramms auf dem IIS-Server.

Informationsquellen

Haben Sie keine Antworten auf Ihre Fragen gefunden? Besuchen Sie in diesem Fall bitte die deutsche Microsoft SQL Server-Newsgroup unter der folgenden Adresse:
Microsoft SQL Server-Newsgroups
Möchten Sie uns Ihre Meinung zu diesem oder anderen Knowledge Base-Artikeln zu Microsoft SQL Server mitteilen? Hinterlassen Sie uns eine Nachricht mit Ihrer Meinung unter Q169377

Eigenschaften

Artikel-ID: 169377 - Geändert am: Dienstag, 15. Februar 2011 - Version: 10.2
Keywords: 
kbsqlssis kbenv kbhowto kbinterop kbtshoot KB169377
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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