基于Web的读者借阅系统中信息综合查询功能的设计与实现

2012-05-08 04:41李国红
电脑知识与技术 2012年7期
关键词:系统设计信息系统

李国红

摘要:分析与阐述了读者借阅信息系统的基本工作原理及基于Access的读者借阅数据库和数据表的结构,然后探讨了基于Web的读者借阅信息综合查询表单和查询处理流程,并提供了实现读者借阅信息综合查询功能的ASP程序代码。

关键词:读者借阅;信息系统;信息查询处理;系统设计;ASP程序

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)07-1478-05

Design and Realization of Comprehensive Information Inquiry Function in Web-based Reader Borrowing Book System

LI Guo-hong

(Department of Management Engineering, Zhengzhou University, Zhengzhou 450001, China)

Abstract: This paper analyzes and expounds the basic principle of Reader Borrowing Book Information System and the Access-based database and its data table structure of the system. Then it discusses the Web-based reader borrowing book information inquiry form and its inquiry processing procedure, with the ASP program code being provided to realize the reader borrowing book comprehensive information inquiry function.

Key words: reader borrowing book; information system; information inquiry processing; system design; ASP program

1读者借阅信息查询处理概述

读者借阅信息查询是图书馆读者借阅系统的极为重要的操作之一。其基本工作原理是,反映读者、图书、借阅情况的信息分别保存在相应的数据表中,各个相关数据表构成了一个功能强大的关系数据库,读者借阅信息查询就是对关系数据库中各数据表的相关数据进行综合查询。

假设读者借阅信息保存在以Microsoft Access创建的读者借阅数据库文件duzhejieyue.mdb中,该数据库中含有分别用于保存读者、图书和借阅信息的duzhe表、tushu表、jieyuetushu表(表的结构如表1~表3所示,字段宽度根据实际情况确定),其中,zhuzhe表中已保存有读者注册信息,tushu表中已保存有图书登记信息,jieyuetushu表中已登记有全部相关的读者借书信息,凡是duzhe表中不存在的读者编号都不会出现在jieyuetushu表中,凡是tushu表中不存在的图书编号也必定不会出现在jieyuetushu表中。

表1 duzhe表的结构

读者借阅信息查询操作就是针对这些数据表查询指定读者的借阅信息,或查询特定的图书被哪些读者所借阅,或查询指定读者借阅特定图书的情况。为实现基于Web的读者借阅信息的查询,可首先利用Internet信息服務控制台将duzhejieyue.mdb所在的目录设置为别名为jieyue的虚拟目录,然后设计基于Web的读者借阅信息查询界面(表单)和信息处理流程,并在虚拟目录所对应的文件夹下,创建与信息查询表单对应的网页文件和用于处理表单的ASP文件即可。

2综合查询表单(zonghechaxun.htm)

为简化描述和降低查询处理的复杂性,这里的综合查询是指根据读者编号或(和)图书编号,查询出有关读者借书情况或图书被读者借阅情况的综合信息。可通过设计综合查询表单和综合查询处理网页以实现这种综合查询的功能。

表2tushu表的结构

表3 jieyuetushu表的结构

图1借书综合查询

设计读者借书综合查询表单如图1所示。单击“查询”按钮,由服务器执行查询处理(对应于综合查询处理文件zonghechaxun. asp);单击“重埴”按钮清空表单的数据输入区域。据此,创建综合查询表单文件zonghechaxun.htm,该文件中的网页代码如下:

<form action="zonghechaxun.asp" method="post">

<table border=1 align=center>

<caption><font face="隶书" size=5>读者借书综合查询</font></caption>

<tr><td align=right>读者编号:</td>

<td><input type ="text" name="dzbh"></td></tr>

<tr><td align=right>图书编号:</td>

<td><input type ="text" name="tsbh"></td></tr>

<table>

<table align=center border=0>

<tr>

<td align=right><input type="submit" value="查询"></td>

<td><input type="reset" value="重填"></td>

</tr>

</table>

</form>

3综合查询处理(zonghechaxun.asp)

3.1综合查询处理的程序流程

在读者借书综合查询表单,单击“查询”按钮,由服务器对表单的查询请求进行处理,处理完成后返回查询结果,如图2所示。

图2借书综合查询结果

查询功能的处理逻辑是:若表单中的读者编号和图书编号都为空字符串(即表单中没有输入任何数据或输入了仅由空格组成的字符串),则将所有读者的全部借书信息显示出来;若读者编号为非空字符串,而图书编号为空字符串,则将指定读者的借书信息全部显示出来;若没有输入读者编号或只输入若干空格,但输入了图书编号(不为空),则将指定图书的被借阅信息全部显示出来。若读者没有借书(或图书没有被借阅),则在新的页面提示“无找到相关记录!”和超链接“[请单击此链接返回]”,可单击此链接返回读者借书综合查询表单,继续执行查询操作。

综合查询的处理结果涉及到duzhe、tushu、jieyuetushu表中的数据,查询结果中的字段可根据实际需要确定。查询过程中,若jieyuetushu表中的读者编号(或图书编号)在duzhe表(或tushu表)中不存在,说明数据库中的数据不一致,这可能是由于人工增删数据造成的,程序中应考虑出现这种情况的可能,并以警告或提示的形式指出jieyuetushu表中所包含的duzhe表中不存在的读者编号(或tushu表中不存在的图书编号)。读者借书综合查询处理的程序流程如图3所示。

3.2综合查询处理文件zonghechaxun.asp

根据读者借书综合查询处理的程序流程及设计的查询处理结果,创建综合查询处理文件zonghechaxun.asp,该文件中的网页代码如下:

<%

strDzbh=Trim(request("dzbh"))

strTsbh=Trim(request("tsbh"))

set conn=server.createobject("ADODB.Connection")

conn.open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&_

server.mappath("duzhejieyue.mdb")

set rs1=server.createobject("ADODB.Recordset")

If Len(strDzbh)=0 Then

If Len(strTsbh)=0 Then

strSQL="select * from jieyuetushu"

Else

strSQL="select * from jieyuetushu where tsbh="& strTsbh &""

End If

Else 输入的待查询读者编号不为空字符串

If Len(strTsbh)=0 Then

strSQL="select * from jieyuetushu where dzbh="& strDzbh &""

Else

strSQL="select * from jieyuetushu where dzbh="

strSQL=strSQL+strDzbh+" and tsbh="+strTsbh+""

End If

End If

rs1.open strSQL,conn

If rs1.eof Then

response.write "无找到相关记录!

"

response.write ""

Else

set rs2=server.createobject("ADODB.Recordset")

set rs3=server.createobject("ADODB.Recordset")

response.write "

"

response.write "

"

response.write "

"

response.write "

"&_

图3读者借书综合查询处理的N-S图

"

"&_

"

"&_

"

"

response.write "

"

Do

rs2.open "select * from duzhe where dzbh=" & rs1("dzbh") & "",conn

If Not rs2.eof Then

rs3.open "select * from tushu where tsbh=" & rs1("tsbh") & "",conn

If Not rs3.eof Then

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

response.write "

"

Else

response.write "警告:jieyuetushu表中存在不合理的图书编号"&_

rs1("tsbh") & "!

"

End If

rs3.close

Else

response.write "警告:jieyuetushu表中存在不合理的读者编号"&_

rs1("dzbh") & "!

"

End If

rs2.close

rs1.movenext

Loop Until rs1.eof

response.write "

查询结果
读者编号读者姓名读者电话图书编号图书名称作者定价借阅日期归还日期还书标记
"&rs1("dzbh")&""&rs2("xm")&""&rs2("dhhm")&""&rs1("tsbh")&""&rs3("tsmc")&""&rs3("zz")&""&rs3("dj")&""&rs1("jyrq")&""&rs1("ghrq")&""&rs1("hsbj")&"
"

Set rs3=Nothing

Set rs2=Nothing

response.write "

猜你喜欢
系统设计信息系统
企业信息系统安全防护
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
企业综合节能信息系统SciMES
高速公路信息系统维护知识库的建立和应用
基于SG-I6000的信息系统运检自动化诊断实践