E-mail:jslt@cccc.net.cn第8卷第7期(2012年3月)http://www.dnzs.net.cnTel:+86-551-56909635690964
基于Web的读者借阅系统中信息综合查询功能的设计与实现
李国红(郑州大学管理工程系,河南郑州450001)
摘要:分析与阐述了读者借阅信息系统的基本工作原理及基于Access的读者借阅数据库和数据表的结构,然后探讨了基于Web的读者借阅信息综合查询表单和查询处理流程,并提供了实现读者借阅信息综合查询功能的ASP程序代码。关键词:读者借阅;信息系统;信息查询处理;系统设计;ASP程序中图分类号:TP311LIGuo-hong(DepartmentofManagementEngineering,ZhengzhouUniversity,Zhengzhou450001,China)Abstract:ThispaperanalyzesandexpoundsthebasicprincipleofReaderBorrowingBookInformationSystemandtheAccess-baseddata⁃baseanditsdatatablestructureofthesystem.ThenitdiscussestheWeb-basedreaderborrowingbookinformationinquiryformanditsin⁃quiryprocessingprocedure,withtheASPprogramcodebeingprovidedtorealizethereaderborrowingbookcomprehensiveinformationinquiryfunction.Keywords:readerborrowingbook;informationsystem;informationinquiryprocessing;systemdesign;ASPprogram文献标识码:A文章编号:1009-3044(2012)07-1478-05DesignandRealizationofComprehensiveInformationInquiryFunctioninWeb-basedReaderBorrowingBookSystem1读者借阅信息查询处理概述
读者借阅信息查询是图书馆读者借阅系统的极为重要的操作之一。其基本工作原理是,反映读者、图书、借阅情况的信息分别
保存在相应的数据表中,各个相关数据表构成了一个功能强大的关系数据库,读者借阅信息查询就是对关系数据库中各数据表的相关数据进行综合查询。
假设读者借阅信息保存在以MicrosoftAccess创建的读者借阅数据库文件duzhejieyue.mdb中,该数据库中含有分别用于保存读者、图书和借阅信息的duzhe表、tushu表、jieyuetushu表(表的结构如表1~表3所示,字段宽度根据实际情况确定),其中,zhuzhe表中已保存有读者注册信息,tushu表中已保存有图书登记信息,jieyuetushu表中已登记有全部相关的读者借书信息,凡是duzhe表中不存在的读者编号都不会出现在jieyuetushu表中,凡是tushu表中不存在的图书编号也必定不会出现在jieyuetushu表中。
表1duzhe表的结构读者借阅信息查询操作就是针对这些数据表查询指定读者的借阅信息,或查询特定的图书被哪些读者所借阅,或查询指定读者借阅特定图书的情况。为实现基于Web的读者借阅信息的查询,可首先利用Internet信息服务控制台将duzhejieyue.mdb所在的目录设置为别名为jieyue的虚拟目录,然后设计基于Web的读者借阅信息查询界面(表单)和信息处理流程,并在虚拟目录所对应的文件夹下,创建与信息查询表单对应的网页文件和用于处理表单的ASP文件即可。
2综合查询表单(zonghechaxun.htm)
为简化描述和降低查询处理的复杂性,这里的综合查询是指根据读者编号或(和)图书编号,查询出有关读者借书情况或图书被读者借阅情况的综合信息。可通过设计综合查询表单和综合查询处理网页以实现这种综合查询的功能。
收稿日期:2012-02-061478
数据库与信息管理
本栏目责任编辑:代
影
第8卷第7期(2012年3月)
表2tushu表的结构ComputerKnowledgeandTechnology电脑知识与技术
表3jieyuetushu表的结构图1借书综合查询设计读者借书综合查询表单如图1所示。单击“查询”按钮,由服务器执行查询处理(对应于综合查询处理文件zonghechaxun.asp);单击“重埴”按钮清空表单的数据输入区域。据此,创建综合查询表单文件zonghechaxun.htm,该文件中的网页代码如下:
3综合查询处理(zonghechaxun.asp) 3.1综合查询处理的程序流程 在读者借书综合查询表单,单击“查询”按钮,由服务器对表单的查询请求进行处理,处理完成后返回查询结果,如图2所示。 本栏目责任编辑:代 影 数据库与信息管理 1479 ComputerKnowledgeandTechnology电脑知识与技术第8卷第7期(2012年3月) 图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\")) setconn=server.createobject(\"ADODB.Connection\") conn.open\"Driver={MicrosoftAccessDriver(*.mdb)};DBQ=\"&_ server.mappath(\"duzhejieyue.mdb\") setrs1=server.createobject(\"ADODB.Recordset\")IfLen(strDzbh)=0ThenIfLen(strTsbh)=0Then strSQL=\"select*fromjieyuetushu\"Else strSQL=\"select*fromjieyuetushuwheretsbh='\"&strTsbh&\"'\"EndIf Else'输入的待查询读者编号不为空字符串IfLen(strTsbh)=0Then strSQL=\"select*fromjieyuetushuwheredzbh='\"&strDzbh&\"'\"Else strSQL=\"select*fromjieyuetushuwheredzbh='\"strSQL=strSQL+strDzbh+\"'andtsbh='\"+strTsbh+\"'\"EndIfEndIf rs1.openstrSQL,connIfrs1.eofThen response.write\"无找到相关记录! response.write\" setrs2=server.createobject(\"ADODB.Recordset\")setrs3=server.createobject(\"ADODB.Recordset\")response.write\" response.write\" response.write\" 1480 数据库与信息管理 本栏目责任编辑:代 影 第8卷第7期(2012年3月) ComputerKnowledgeandTechnology电脑知识与技术 图3读者借书综合查询处理的N-S图\" \" *fromtushuwheretsbh='\"&rs1(\"tsbh\")&response.writeNotrs3.eofThen\"'\response.write\" response.write\" response.write\" 本栏目责任编辑:代 影 数据库与信息管理 1481 ComputerKnowledgeandTechnology电脑知识与技术第8卷第7期(2012年3月) 3.3相关说明 EndIfrs3.closeElse response.write\"警告:jieyuetushu表中存在不合理的读者编号\"&_ rs1(\"dzbh\")&\"! EndIfrs2.closers1.movenextLoopUntilrs1.eof response.write\"\"Setrs3=NothingSetrs2=Nothing response.write\" \"请单击这里,返回前一页面! EndIfrs1.close Setrs1=Nothing%> rs1(\"tsbh\")&\"! 综合查询处理文件zonghechaxun.asp中,IfLen(strDzbh)=0Then…Else…EndIf用于表示出与待查询读者编号和图书编号对应的不同情况下的查询字符串,这部分的代码也可替换成以下的If…ElseIf…Else…EndIf结构: IfLen(strDzbh)=0AndLen(strTsbh)=0ThenstrSQL=\"select*fromjieyuetushu\" ElseIfLen(strDzbh)<>0AndLen(strTsbh)=0Then strSQL=\"select*fromjieyuetushuwheredzbh='\"&strDzbh&\"'\"ElseIfLen(strDzbh)=0AndLen(strTsbh)<>0Then strSQL=\"select*fromjieyuetushuwheretsbh='\"&strTsbh&\"'\"Else'输入的待查询读者编号和图书编号均不为空字符串strSQL=\"select*fromjieyuetushuwheredzbh='\"strSQL=strSQL+strDzbh+\"'andtsbh='\"+strTsbh+\"'\"EndIf 参考文献: [1]陈建伟.ASP动态网站开发教程[M].2版.北京:清华大学出版社,2005.[2]陈洛资,陈昭平.数据库系统及应用基础[M].2版.北京:清华大学出版社,北京交通大学出版社,2005.[3]李国红.管理信息系统设计理论与实务[M].北京:经济科学出版社,2009.1482 数据库与信息管理 本栏目责任编辑:代影 因篇幅问题不能全部显示,请点此查看更多更全内容
\"\" \"rs2.openIf\"select*fromduzhewheredzbh='\"&rs3.openNotrs2.eofrs1(\"dzbh\")&\"'\If\"selectThen读者编号 读者姓名 读者电话 \"&_\" 图书编号 图书名称 作者response.write\" 定价归还日期 借阅日期 \"&_还书标记\"&_\"Do\" \"response.write\"警告:jieyuetushu表中存在不合理的图书编号\"&_\"&rs1(\"dzbh\")&\" \"response.write\"\"&rs2(\"xm\")&\" \"response.write\"\"&rs2(\"dhhm\")&\" \"response.write\"\"&rs1(\"tsbh\")&\" \"response.write\"\"&rs3(\"tsmc\")&\" \"response.write\"\"&rs3(\"zz\")&\" \"response.write\"\"&rs3(\"dj\")&\" \"response.write\"\"&rs1(\"jyrq\")&\" \"response.write\"\"&rs1(\"ghrq\")&\" \"Else\"&rs1(\"hsbj\")&\" \"\"
\"
\"