Jak uzyskać dostęp do serwera SQL w Active Server Pages

Dotyczy: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Express EditionMicrosoft SQL Server 2005 Developer Edition

Streszczenie


W tym artykule opisano sposób ustanawiania połączeń z serwerem SQL w skrypcie ASP używając ActiveX Data Objects (ADO), korzystając z funkcji ODBC 3.0 buforowania połączeń.



Więcej informacji


Buforowanie połączeń

Włącz buforowanie połączeń ODBC.
Aby uzyskać dodatkowe informacje o pulach połączeń i uzyskać instrukcje dotyczące włączania tej funkcji kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

164221 jak włączyć buforowanie połączeń w aplikacji ODBC

ŹRÓDŁO DANYCH ODBC DSN

Za pomocą Administratora ODBC, Utwórz nazwę źródła danych (DSN) systemu na komputerze, na którym zainstalowano Microsoft Internet Information Server (IIS). Określ atrybut połączenia jeden raz, a następnie ponownie na każdej stronie. Na przykład w zdarzenia Session_OnStart w pliku Global.asa, należy określić atrybut połączenia jako:
   Session("ConnectionString") =
"dsn=SQLSysDSN;uid=<username>;pwd=<strong password>;DATABASE=pubs;APP=ASP Script"
Upewnij się, że są spełnione wszystkie następujące warunki:
  • W definicji systemowe źródło danych DSN nie zaznaczono pole Zaufanego połączenia .
  • Tryb zabezpieczeń programu SQL Server nie jest zintegrowane systemu Windows NT.
  • W polu atrybut połączenia uid nie jest pusta.
W przeciwnym razie połączenie z SQL Server może zakończyć się niepowodzeniem i zostanie wyświetlony następujący komunikat o błędzie:

Dostawca Microsoft OLE DB dla sterowników ODBC błąd '80004005'
[Microsoft] [Sterownik ODBC SQL Server] [SQL Server] Logowanie nie powiodło się User: _
Powód: Nie zdefiniowane jako prawidłowy użytkownik zaufanego połączenia programu SQL Server.

Global.asa

Korzystanie z pliku Global.asa jest opcjonalne. W jego miejsce zazwyczaj wprowadzone w tym pliku można umieścić na pierwszej stronie wywołana przez aplikację. Zakładając, że skrypty ASP znajdują się w folderze, który nie jest zdefiniowany jako katalogu wirtualnego w Menedżerze usług internetowych, ale poniżej innego katalogu wirtualnego, pliku Global.asa zawierających zmienne sesji i definicje DSN muszą być trzymane w wirtualnym katalog. W przeciwnym razie pojawi się następujący komunikat o błędzie:

Microsoft OLE DB Provider for ODBC Drivers błąd '80004005'
[Microsoft] [ODBC Driver Manager] Nie można odnaleźć nazwy źródła danych i nie
podanego sterownika domyślnego

Połączenia w skrypcie ASP

Korzystać z buforowania otwierający i zamykający połączenia z bazą danych na każdej stronie aktywnego serwera połączeń. Aby otworzyć połączenie, wpisz następujące instrukcje w sekcji < Body > strony:
   <%
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open Session("ConnectionString") %>
Aby zamknąć połączenie, należy umieścić następujące bezpośrednio po < / ciała > tag:
   <%
OBJdbConnection.Close
Set OBJdbConnection = Nothing
%>
Jeśli ustawienia połączenia nie są poprawnie zdefiniowane opisane we wcześniejszej części tego artykułu, może zostać wyświetlony następujących komunikatów o błędzie:


Microsoft OLE DB Provider for ODBC Drivers błąd '80004005'
[Microsoft] [Sterownik ODBC SQL Server] : [DBNMPNTW] Połączenie przerwane.
- lub -

Microsoft OLE DB Provider for ODBC Drivers błąd '80004005'
[Microsoft] [Sterownik ODBC SQL Server] Błąd łącza komunikacyjnego

Oto przykładowej aplikacji, która składa się z Global.asa i plików Authors.asp. Ta przykładowa aplikacja zwróci cztery kolumny i wszystkie rekordy w tabeli pubs o nazwie autorów.

Uwaga Należy zmienić identyfikator UID < nazwa_użytkownika > i pwd = < silne hasło > do poprawnych wartości przed uruchomieniem tego kodu. Upewnij się, że identyfikator UID ma odpowiednie uprawnienia do wykonania tej operacji na bazie danych.

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>
Aby uzyskać więcej informacji na temat Active Server Pages Zobacz plan pracy dostarczane przez program instalacyjny ASP na serwerze IIS.