Jak přistupovat k serveru SQL Server ze stránek ASP

Souhrn

Tento článek popisuje postup při navazování připojení k serveru SQL Server ze skriptu ASP pomocí rozhraní ActiveX Data Objects (ADO) s využitím funkce sdružování připojení rozhraní ODBC 3.0.



Další informace

Sdružování připojení

Povolte funkci sdružování připojení rozhraní ODBC.
Další informace o sdružování připojení a pokyny pro povolení této funkce získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

164221 Povolení sdružování připojení v aplikaci s rozhraním ODBC (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)

Název datového zdroje rozhraní ODBC

Pomocí programu ODBC Administrator vytvořte název systémového datového zdroje (System DSN) v počítači s nainstalovaným serverem Microsoft Internet Information Server (IIS). Určete atribut připojení a použijte jej na každé stránce. Například pro událost Session_OnStart souboru Global.asa definujte atribut připojení:
   Session("ConnectionString") =
"dsn=SQLSysDSN;uid=<jméno uživatele>;pwd=<silné heslo>;DATABASE=pubs;APP=ASP Script"
Přesvědčte se, zda jsou splněny všechny následující podmínky:
  • V definici názvu systémového zdroje dat není zaškrtnuté políčko Trusted Connection (Důvěryhodné připojení).
  • Režim zabezpečení serveru SQL Server není nastaven na možnost Windows NT Integrated.
  • Hodnota UID atributu připojení není prázdná.
V opačném případě může dojít k následující chybě serveru SQL Server:

Microsoft OLE DB provider for ODBC Drivers error '80004005' (Chyba zprostředkovatele Microsoft OLE DB pro ovladače rozhraní ODBC: 80004005)
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed- User: ([Microsoft][ODBC SQL Server Driver][SQL Server]Přihlášení se nezdařilo – Uživatel:) _
Reason: (Příčina:) Not defined as a valid user of a trusted SQL Server connection. (Uživatel není definován jako platný uživatel důvěryhodného připojení serveru SQL Server.)

Soubor Global.asa

Použití souboru Global.asa je nepovinné. Položky zapsané v tomto souboru je možné zadat na první stránku volanou aplikací. Za předpokladu, že skripty ASP jsou uloženy ve složce, která není v programu Internet Service Manager definována jako virtuální adresář, ale jako podřízený adresář jiného virtuálního adresáře, musí být soubor Global.asa obsahující proměnné relace a definice názvů datového zdroje uložen ve virtuálním adresáři. V opačném případě se zobrazí následující chybová zpráva:

Microsoft OLE DB Provider for ODBC Drivers error '80004005' (Chyba zprostředkovatele Microsoft OLE DB pro ovladače rozhraní ODBC: 80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no
default driver specified ([Microsoft][ODBC Driver Manager] Název datového zdroje nebyl nalezen a nebyl určen výchozí ovladač.)

Připojení ve skriptu ASP

Funkci sdružování připojení lze využít při otevírání a ukončování připojení k databázi na každé stránce ASP. Pokud chcete otevřít připojení, zadejte v oddílu <Body> dané stránky následující příkaz:
   <%
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open Session("ConnectionString") %>
Pokud chcete ukončit připojení, zadejte následující příkaz bezprostředně za značku </Body>:
   <%
OBJdbConnection.Close
Set OBJdbConnection = Nothing
%>
Pokud není nastavení připojení definováno přesně podle pokynů výše, může docházet k následujícím chybám:


Microsoft OLE DB Provider for ODBC Drivers error '80004005' (Chyba zprostředkovatele Microsoft OLE DB pro ovladače rozhraní ODBC: 80004005)
[Microsoft][ODBC SQL Server Driver][DBNMPNTW]Connection broken. ([Microsoft][ODBC SQL Server Driver][DBNMPNTW]Připojení bylo přerušeno.)
nebo

Microsoft OLE DB Provider for ODBC Drivers error '80004005' (Chyba zprostředkovatele Microsoft OLE DB pro ovladače rozhraní ODBC: 80004005)
[Microsoft][ODBC SQL Server Driver]Communication link failure ([Microsoft][ODBC SQL Server Driver]Chyba komunikace)

Dále je uvedena ukázková aplikace obsahující soubory Global.asa a Authors.asp. Tato vzorová aplikace vrací čtyři sloupce a všechny záznamy tabulce pubs nazvané authors.

Poznámka: Před spuštěním tohoto kódu je třeba hodnoty UID <jméno uživatele> a pwd =<silné heslo> nahradit platnými údaji. Ujistěte se, zda má zadaný uživatel příslušné oprávnění pro provedení této akce s databází.

Global.asa
   <SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
Session("ConnectionString") =
"DSN=SQLSysDSN;UID=<jméno uživatele>;PWD=<silné heslo>;DATABASE=pubs;APP=ASP script"
Session("ConnectionTimeout") = 15
Session("CommandTimeout") = 30
End Sub

Sub Session_OnEnd

End Sub
</SCRIPT>
Authors.asp
   <HTML>
<HEAD>
<TITLE>Všichni autoři</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>
Další informace o stránkách Active Server Pages (ASP) naleznete v dokumentaci, která je součástí instalačního programu podpory technologie ASP na serveru IIS.

Odkazy

Nenalezli jste odpověď na svůj dotaz? Navštivte diskusní skupiny věnované serveru Microsoft SQL Server na následujícím webu: Máte další poznámky k tomuto nebo jiným článkům znalostní báze týkajícím se serveru Microsoft SQL Server? Pošlete nám svůj názor na adresu Q169377.
Vlastnosti

ID článku: 169377 - Poslední kontrola: 16. 2. 2011 - Revize: 1

Váš názor