精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>ASP教程>正文

数据库远程控制的ASP实现


来源:我要学习网 时间:06-11-12 点击: 点击这里收藏本文
  随着计算机应用的发展,越来越多的数据被存储在中心机房的服务器上,由于一些管理人员的地理位置不在中心机房,于是带来了数据的远程管理问题。本文以广州地铁运营事业总部的图书资料管理系统为例,介绍利用ASP技术实现这种数据库远程控制的具体方法和步骤。  
问题的提出  
广州地铁运营事业总部已经实现计算机内部联网,因为个人计算机在人们下班后都处于关机状态,为使员工可以24小时通过联网本地计算机查知图书资料的实时状态信息,因此将图书资料管理数据库放在计算机中心的服务器上,而不是放在资料室的个人计算机中。这样就带来了数据库的远程管理问题。  
因为只有在仍有复本可借的情况下,员工才有必要去资料室办理借阅手续,并且如果已无复本可借而本人正急需使用时,还可以查询借阅人信息,以便同借阅人共同参阅或请其尽快归还以便借阅。所以,公司资料室图书资料管理数据库必须能向查询员工提供复本总量、剩余复本量、借阅人等实时状态信息。  
为此,在运营事业总部内部网主页上给图书资料管理员提供一个对图书资料借阅情况进行管理的入口。当图书资料管理员进入时,进行身份验证,凭用户名和密码进入图书资料借阅情况管理页面。对图书资料管理员来说,对数据库的操作就像在本地计算机上一样。  
操作该网络数据库时用到的对象主要有Request对象和ADO组件的Connection、Response、CreateObject对象,用到的方法主要是SQL语言的一些命令如Select、Update等。Request对象用来从地址栏中取回参数值;Connection对象用来建立和管理应用程序和ODBC数据库之间的连接,该对象具有各种属性和方法,可以使用它们打开和关闭数据库的连接,并且可以发出查询请求更新信息; SQL命令主要实现数据记录的查询、更新等操作。  
下面是各主要功能模块的关键代码和解释。  
用户登录(login.asp)  
<!--#include file=“adovbs.inc” -->  
<%  
// 获取操作计算机的IP地址  
Dim ipaddr  
Ipaddr = Request.ServerVariables(“REMOTE_ADDR”)  
// 限制只有资料室的计算机(固定IP地址)才能进入图书资料数据库维护系统  
if Ipaddr<>“172.16.1.56” and paddr<>“172.16.1.58” and Ipaddr<>“172.16.3.61” then  
IpError=1  
end if  
// 要求输入用户名与密码,与上一条件构成双重保护,并将输入的用户名和密码与用户管理数据库中的用户名和密码对照,如果有此用户且密码正确,则继续执行  
name=trim(request(“name”))  
password=trim(request(“password”))  
if name<>“” and password<>“” then  
Set conn=Server.CreateObject(“ADODB.Connection”)  
Set rs=Server.CreateObject(“adodb.recordset”)  
sql=“select * from user where username=‘”&name&“’and passwd=‘”&password&“’”  
Set rs=conn.execute(sql)  
 ……  
if not(rs.eof) then  
Session(“pass”)=1  
Session(“user”)=name  
Response.Redirect (“bmanage.asp”)  
   ……  
end if  
  ……  
end if  
%>  
创建用户查询界面(bmanage.asp)  
//保证只有通过登录的人才能进入  
<%  
if session(“pass”)<>1 then  
response.redirect (“login.asp”)  
end if  
%>  
// 创建表单,给出几个类别(分类号、借阅情况、题名、出版者、著编者),供自选查询条件  
<form name=“form_choice” action=“inq_modi.asp”>  
<input type=“radio” name=“choice” value=“type”>分类号   
<input type=“radio” name=“choice” value=“borrow” checked>借阅情况   
<input type=“radio” name=“choice” value=“title”>题名   
<input type=“radio” name=“choice” value=“press”>出版者   
<input type=“radio” name=“choice” value=“author”>著编者   
<b>包含: </b>  
<input type=“text” name=“include” value=“<%=include%>” maxlength=“30”>  
<input type=“submit” name=“Submit” value=“ 搜索 ”>  
</form>  
执行查询操作(inq_modi.asp)  
<!--#include file=“RsToModi.asp” -->  
<%  
//利用Request传回的值到数据库中查询相应的记录  
choice=Request(“choice”)  
include=Request(“include”)  
sql = “Select * From 图书目录”  
Select Case choice  
case “borrow”  
sql = sql & “Where 借阅情况 like ‘%” & include & “%’”  
titlestr=“借阅情况”  
……  
End Select  
titlestr = titlestr & “ 包含 ” & include & “图书目录”  
sql = sql & “Order by 分类号”  
%>  
// 调用RsToModi.asp显示查询结果  
<%   
Set conn = Server.CreateObject(“ADODB.Connection”)  
conn.open “driver={Microsoft Access Driver (*.mdb)}; dbq=”& Server.MapPath(“Books.mdb”)  
Set rs = conn.Execute(sql)  
RsToModiTable rs   
%>  
显示查询结果(RsToModi.asp)  
<%  
Sub RsToModiTable( rs )  
’Part I 取得图书序号和借阅情况字段值  
For i=0 to rs.Fields.Count-1  
Response.WRITE “<TD>” & rs.Fields(i).Name & “</TD>”  
if rs.Fields(i).Name = “序号” then  
bookidfield= i  
end if  
if rs.Fields(i).Name = “借阅情况” then  
linkfield= i  
end if  
Next  
’Part Ⅱ 创建借阅情况链接,调用借阅情况修改页面  
While Not rs.EOF   
For i=0 to rs.Fields.Count-1  
if i <> linkfield then  
if i = bookidfield then  
bookidvalue = rs.Fields(i).Value  
end if  
if trim(rs.Fields(i).Value) <> “” then  
Response.WRITE “<TD>”& rs.Fields(i).Value & “</TD>”  
else  
Response.WRITE “<TD>” & “—” & “</TD>”  
end if  
else  
linkstr = “<a href=” & ““”” & “bookmodi.asp?bookid=” & bookidvalue & ““””  
linkstr = linkstr & “target=” & ““”” & “_blank” & ““”” & “>”  
alignstr = “<p align=”& ““”” &“center” & ““”” & “>”  
if trim(rs.Fields(i).Value) <> “” then  
Response.WRITE “<TD>” & alignstr & linkstr & rs.Fields(i).Value & “</a>” & “</TD>”  
else  
Response.WRITE “<TD>” & alignstr & linkstr & “无” & “</a>” & “</TD>”  
end if  
end if  
Next  
rs.MoveNext  
Wend  
End Sub  
%>  
借阅情况修改页面(BookModi.asp)  
// 将Request传递来的序号所对应的记录显示在页面上,对册数、借阅情况、借阅日期字段进行修改  
<%   
BookID=Request(“BookID”)  
DbPath = Server.MapPath(“Books.mdb”)  
Set conn = Server.CreateObject(“ADODB.Connection”)  
conn.open “driver={Microsoft Access Driver (*.mdb)}; dbq=” & DbPath  
sql = “Select * From 图书目录”  
sql = sql & “ Where 序号 =” & BookID  
Set rs = conn.Execute(sql)  
%>  
// 创建表单,对册数、借阅情况、借阅日期字段进行修改  
<form Action=“BookUpdate. asp?BookID=<%=BookID%>” method=“POST”>  
<td height=“35” width=“17”>序号</td>  
 ……  
<td height=“80” width=“17”><%=rs(“序号”)%></td>  
 ……  
<Input Type=Text Name=“BNumber” Value=<%=rs(“册数”)%> size=“3”>  
<Input Type=Text Name=“BPerson”Value=<%=rs(“借阅情况”)%> ></td>  
<Input Type=Text Name=“BDate” Value=<%=rs(“借阅日期”)%>>  
<p><input type=“submit” value=“ 修改 ” name=“MODIFY”>  
<input type=“button” value=“ 退出 ” name=“EXIT” onclick=“window.close()”>  
</p>  
</form>  
保存修改结果(BookUpdate.asp)  
<!--#include file=“adovbs.inc” -->  
<%  
BookID=Request(“BookID”)  
DbPath = SERVER.MapPath(“Books.mdb”)  
Set conn = Server.CreateObject(“ADODB.Connection”)  
conn.open “driver={Microsoft Access Driver (*.mdb)}; dbq=” & DbPath  
B_number = Request(“BNumber”)  
B_person = Request(“BPerson”)  
B_date = Request(“BDate”)  
if len(B_number) = 0 then  
B_number = 1  
end if  
if len(B_person) = 0 then  
B_person = “ ”  
end if  
if len(B_date) = 0 then  
B_date = “ ”  
end if  
Set rs=SERVER.CreateObject(“ADODB.Recordset”)  
rs.Open “图书目录”, conn , adOpenDynamic, adLockPessimistic  
sql = “Update 图书目录”  
sql = sql & “ Set 借阅情况 = ” & “‘” & B_person & “’”  
sql = sql & “ , 借阅日期 = ” & “‘” & B_date & “’”  
sql = sql & “ , 册数 = ”& “‘” & B_number & “’”  
sql = sql & “Where 序号 = ” & BookID  
Set rs = conn.Execute(sql)  
%>

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.