李國(guó)紅
摘要:分析與闡述了讀者借閱信息系統(tǒng)的基本工作原理及基于Access的讀者借閱數(shù)據(jù)庫和數(shù)據(jù)表的結(jié)構(gòu),然后探討了基于Web的讀者借閱信息綜合查詢表單和查詢處理流程,并提供了實(shí)現(xiàn)讀者借閱信息綜合查詢功能的ASP程序代碼。
關(guān)鍵詞:讀者借閱;信息系統(tǒng);信息查詢處理;系統(tǒng)設(shè)計(jì);ASP程序
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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讀者借閱信息查詢處理概述
讀者借閱信息查詢是圖書館讀者借閱系統(tǒng)的極為重要的操作之一。其基本工作原理是,反映讀者、圖書、借閱情況的信息分別保存在相應(yīng)的數(shù)據(jù)表中,各個(gè)相關(guān)數(shù)據(jù)表構(gòu)成了一個(gè)功能強(qiáng)大的關(guān)系數(shù)據(jù)庫,讀者借閱信息查詢就是對(duì)關(guān)系數(shù)據(jù)庫中各數(shù)據(jù)表的相關(guān)數(shù)據(jù)進(jìn)行綜合查詢。
假設(shè)讀者借閱信息保存在以Microsoft Access創(chuàng)建的讀者借閱數(shù)據(jù)庫文件duzhejieyue.mdb中,該數(shù)據(jù)庫中含有分別用于保存讀者、圖書和借閱信息的duzhe表、tushu表、jieyuetushu表(表的結(jié)構(gòu)如表1~表3所示,字段寬度根據(jù)實(shí)際情況確定),其中,zhuzhe表中已保存有讀者注冊(cè)信息,tushu表中已保存有圖書登記信息,jieyuetushu表中已登記有全部相關(guān)的讀者借書信息,凡是duzhe表中不存在的讀者編號(hào)都不會(huì)出現(xiàn)在jieyuetushu表中,凡是tushu表中不存在的圖書編號(hào)也必定不會(huì)出現(xiàn)在jieyuetushu表中。
表1 duzhe表的結(jié)構(gòu)
讀者借閱信息查詢操作就是針對(duì)這些數(shù)據(jù)表查詢指定讀者的借閱信息,或查詢特定的圖書被哪些讀者所借閱,或查詢指定讀者借閱特定圖書的情況。為實(shí)現(xiàn)基于Web的讀者借閱信息的查詢,可首先利用Internet信息服務(wù)控制臺(tái)將duzhejieyue.mdb所在的目錄設(shè)置為別名為jieyue的虛擬目錄,然后設(shè)計(jì)基于Web的讀者借閱信息查詢界面(表單)和信息處理流程,并在虛擬目錄所對(duì)應(yīng)的文件夾下,創(chuàng)建與信息查詢表單對(duì)應(yīng)的網(wǎng)頁文件和用于處理表單的ASP文件即可。
2綜合查詢表單(zonghechaxun.htm)
為簡(jiǎn)化描述和降低查詢處理的復(fù)雜性,這里的綜合查詢是指根據(jù)讀者編號(hào)或(和)圖書編號(hào),查詢出有關(guān)讀者借書情況或圖書被讀者借閱情況的綜合信息??赏ㄟ^設(shè)計(jì)綜合查詢表單和綜合查詢處理網(wǎng)頁以實(shí)現(xiàn)這種綜合查詢的功能。
表2tushu表的結(jié)構(gòu)
表3 jieyuetushu表的結(jié)構(gòu)
圖1借書綜合查詢
設(shè)計(jì)讀者借書綜合查詢表單如圖1所示。單擊“查詢”按鈕,由服務(wù)器執(zhí)行查詢處理(對(duì)應(yīng)于綜合查詢處理文件zonghechaxun. asp);單擊“重埴”按鈕清空表單的數(shù)據(jù)輸入?yún)^(qū)域。據(jù)此,創(chuàng)建綜合查詢表單文件zonghechaxun.htm,該文件中的網(wǎng)頁代碼如下:
<form action="zonghechaxun.asp" method="post">
<table border=1 align=center>
<caption><font face="隸書" size=5>讀者借書綜合查詢</font></caption>
<tr><td align=right>讀者編號(hào):</td>
<td><input type ="text" name="dzbh"></td></tr>
<tr><td align=right>圖書編號(hào):</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綜合查詢處理的程序流程
在讀者借書綜合查詢表單,單擊“查詢”按鈕,由服務(wù)器對(duì)表單的查詢請(qǐng)求進(jìn)行處理,處理完成后返回查詢結(jié)果,如圖2所示。
圖2借書綜合查詢結(jié)果
查詢功能的處理邏輯是:若表單中的讀者編號(hào)和圖書編號(hào)都為空字符串(即表單中沒有輸入任何數(shù)據(jù)或輸入了僅由空格組成的字符串),則將所有讀者的全部借書信息顯示出來;若讀者編號(hào)為非空字符串,而圖書編號(hào)為空字符串,則將指定讀者的借書信息全部顯示出來;若沒有輸入讀者編號(hào)或只輸入若干空格,但輸入了圖書編號(hào)(不為空),則將指定圖書的被借閱信息全部顯示出來。若讀者沒有借書(或圖書沒有被借閱),則在新的頁面提示“無找到相關(guān)記錄!”和超鏈接“[請(qǐng)單擊此鏈接返回]”,可單擊此鏈接返回讀者借書綜合查詢表單,繼續(xù)執(zhí)行查詢操作。
綜合查詢的處理結(jié)果涉及到duzhe、tushu、jieyuetushu表中的數(shù)據(jù),查詢結(jié)果中的字段可根據(jù)實(shí)際需要確定。查詢過程中,若jieyuetushu表中的讀者編號(hào)(或圖書編號(hào))在duzhe表(或tushu表)中不存在,說明數(shù)據(jù)庫中的數(shù)據(jù)不一致,這可能是由于人工增刪數(shù)據(jù)造成的,程序中應(yīng)考慮出現(xiàn)這種情況的可能,并以警告或提示的形式指出jieyuetushu表中所包含的duzhe表中不存在的讀者編號(hào)(或tushu表中不存在的圖書編號(hào))。讀者借書綜合查詢處理的程序流程如圖3所示。
3.2綜合查詢處理文件zonghechaxun.asp
根據(jù)讀者借書綜合查詢處理的程序流程及設(shè)計(jì)的查詢處理結(jié)果,創(chuàng)建綜合查詢處理文件zonghechaxun.asp,該文件中的網(wǎng)頁代碼如下:
<%
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 輸入的待查詢讀者編號(hào)不為空字符串
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 "無找到相關(guān)記錄!
"
response.write ""
Else
set rs2=server.createobject("ADODB.Recordset")
set rs3=server.createobject("ADODB.Recordset")
response.write "
讀者編號(hào) | 讀者姓名 | 讀者電話 | "&_圖書編號(hào) | 圖書名稱 | 作者 | "&_定價(jià) | 借閱日期 | "&_歸還日期 | 還書標(biāo)記 | "
---|---|---|---|---|---|---|---|---|---|
"&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 "