Примеры программ
Листинг 4.12. Файл для доступа к БД MS Access'97.
[ODBC] DRIVER=Microsoft Access Driver (*.mdb) UID=admin UserCommitSync=Yes Threads=3 SafeTransactions=0 ReadOnly=0 PageTimeout=5 MaxScanRows=8 MaxBufferSize=512 ImplicitCommitSync=Yes FIL=MS Access DriverId=281 DefaultDir=C:\Inetpub\scripts\bookcd DBQ=C:\Inetpub\scripts\bookcd\bakal1.mdb
Сценарий, использующий этот файл, приведен в листинге 4.14.
Листинг 4.13. Файл для доступа к БД MySQL.
[ODBC] DRIVER=MySQL ODBC 3.51 Driver UID=gun STMT= OPTION=3 PORT= PASSWORD= SERVER=inna DATABASE=test
Листинг 4.14. Сценарий формирования DSN.
<%
Dim sDB, sPath, sDSNFil, sDSN, sScriptDir
'This is the entire DB path
sDB = "C:\Inetpub\scripts\bookcd\bakal1.mdb"
' Retrieve the script directory
sScriptDir = Request.ServerVariables("SCRIPT_NAME")
sScriptDir = StrReverse(sScriptDir)
sScriptDir = Mid(sScriptDir, InStr(1, sScriptDir, "/"))
sScriptDir = StrReverse(sScriptDir)
' Set the virtual Directory
sPath = Server.MapPath(sScriptDir) & "\"
' This is the DSN file Name for Access database
sDSNFil = "Access.dsn" ' This is the resulting DSN string
sDSN="filedsn="&sPath&sDSNFil&";DefaultDir="&sPath&";DBQ="&sPath&sDB&";"
%>
Листинг 4.15. Файл включения.
<% ' ADO constants include file for VBScript '---- CursorTypeEnum Values ---- Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 %> <FONT FACE="Verdana, Arial" SIZE=2> <FORM ACTION="<% =sScript%>" METHOD=GET> <SELECT NAME=YEAR> <OPTION VALUE=1998 SELECTED>1998 <OPTION VALUE=1999>1999 <OPTION VALUE=2000>2000 <OPTION VALUE=2001>2001 <OPTION VALUE=2002>2002 </SELECT></FONT> <P><INPUT TYPE="Image" SRC="images/go.gif" BORDER="0" WIDTH="35" HEIGHT="20"> </P> </FORM>
Листинг 4.16. Сценарий авторизации посетителя.
<!-- #include file ="dsn.asp" -->
<!-- #include file="adovbs.inc" -->
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Идентификация пользователя</title></head>
<body BGCOLOR="#CCCCFF" TEXT="#0000FF" LEFTMARGIN="3">
<%
If not isEmpty(Session("userlevel")) then
Session("userlevel") = Empty
Session("userid") = Empty
end if
user = Request.Form.Item("T1")
pswd = Request.Form.Item("T2")
b1 = Request.Form.Item("B1")
If not isEmpty(user) and not isEmpty(pswd) then
Set Rs = Server.CreateObject("ADODB.RecordSet")
sSQL = "SELECT Users.Pswd, Users.Access_ID,
Users.User_ID FROM Users WHERE Users.Login = '"&user&"'"
Rs.Open sSQL, sDSN
if not RS.EOF then
if RS.fields(0).value = pswd then
Session("userlevel") = RS.fields(1).value
Session("userid") = RS.fields(2).value
Response.Redirect("menu.asp")
end if
end if
Session("userlevel") = 3
Response.Redirect("menu.asp")
end if
%>
<form method="POST" action="enter.asp">
<center>
<table border="0" width="50%" cellspacing="1" cellpadding="4">
<tr><td width="100%" colspan="2" bgcolor="#000080">
<b><font size="4">Идентификация пользователя </font> </b></td> </tr>
<tr><td width="50%" align="right">Имя:</td>
<td width="50%"><input type="text" name="T1" size="20"></td>
</tr>
<tr><td width="50%" align="right">Пароль:</td>
<td width="50%"><input type="password" name="T2" size="20"></td>
</tr>
<tr><td width="100%" align="right" colspan="2">
<center><input type="submit" value="Войти" name="B1" ></td>
</tr>
</table></center>
</form></body></html>
Листинг 4.17. Сценарий доступа к БД MySQL.
<%@ LANGUAGE="VBScript"%>
<!-- #include file ="e14a.asp" -->
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=windows-1251">
<TITLE>Using MySQL</TITLE></HEAD><BODY>
<%
Dim objRecordset
Set objRecordset = Server.CreateObject("ADODB.Recordset")
' Устанавливаем подсоединение и выполняем запрос
objRecordset.Open "SELECT name FROM people", sDSN
%><!-- Строим список SELECT по набору данных -->
<SELECT SIZE=3>
<% Do While Not ObjRecordset.EOF %>
<!-- Создаем очередной элемент списка -->
<OPTION><%=objRecordset("name")%></OPTION>
<% objRecordset.MoveNext
Loop %>
</SELECT></BODY></HTML>
