|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天广州地铁运营奇迹总部盘算机中央周振喜吕利
着盘算机使用的开展,愈来愈多的数据被存储在中央机房的服务器上,因为一些办理职员的地舆地位不在中央机房,因而带来了数据的远程办理成绩。本文以广州地铁运营奇迹总部的图书材料办理体系为例,先容使用ASP手艺完成这类数据库远程把持的详细办法和步骤。
成绩的提出
广州地铁运营奇迹总部已完成盘算机外部联网,由于团体盘算机在人们上班后都处于关机形态,为使员工能够24小时经由过程联网当地盘算机查知图书材料的及时形态信息,因而将图书材料办理数据库放在盘算机中央的服务器上,而不是放在材料室的团体盘算机中。如许就带来了数据库的远程办理成绩。
由于只要在仍有复本可借的情形下,员工才有需要往材料室打点借阅手续,而且假如已无复本可借而自己正急需利用时,还能够查询借阅人信息,以便同借阅人配合参阅或请其尽快偿还以便借阅。以是,公司材料室图书材料办理数据库必需能向查询员工供应复本总量、残剩复本量、借阅人等及时形态信息。
为此,在运营奇迹总部外部网主页上给图书材料办理员供应一个对图书材料借阅情形举行办理的出口。当图书材料办理员进进时,举行身份考证,凭用户名和暗码进进图书材料借阅情形办理页面。对图书材料办理员来讲,对数据库的操纵就像在当地盘算机上一样。
操纵该收集数据库时用到的工具次要有Request工具和ADO组件的Connection、Response、CreateObject工具,用到的办法次要是SQL言语的一些命令如Select、Update等。Request工具用来从地点栏中取回参数值;Connection工具用来创建和办理使用程序和ODBC数据库之间的毗连,该工具具有各类属性和办法,可使用它们翻开和封闭数据库的毗连,而且能够收回查询哀求更新信息;SQL命令次要完成数据纪录的查询、更新等操纵。
上面是各次要功效模块的关头代码息争释。
用户登录(login.asp)
<!--#includefile=“adovbs.inc”-->
<%
//猎取操纵盘算机的IP地点
Dimipaddr
Ipaddr=Request.ServerVariables(“REMOTE_ADDR”)
//限定只要材料室的盘算机(流动IP地点)才干进进图书材料数据库保护体系
ifIpaddr“172.16.1.56”andpaddr“172.16.1.58”andIpaddr“172.16.3.61”then
IpError=1
endif
//请求输出用户名与暗码,与上一前提组成两重回护,并将输出的用户名和暗码与用户办理数据库中的用户名和暗码对比,假如有此用户且暗码准确,则持续实行
name=trim(request(“name”))
password=trim(request(“password”))
ifname“”andpassword“”then
Setconn=Server.CreateObject(“ADODB.Connection”)
Setrs=Server.CreateObject(“adodb.recordset”)
sql=“select*fromuserwhereusername=‘”&name&“’andpasswd=‘”&password&“’”
Setrs=conn.execute(sql)
……
ifnot(rs.eof)then
Session(“pass”)=1
Session(“user”)=name
Response.Redirect(“bmanage.asp”)
……
endif
……
endif
%>
创立用户查询界面(bmanage.asp)
//包管只要经由过程登录的人才网能进进
<%
ifsession(“pass”)1then
response.redirect(“login.asp”)
endif
%>
//创立表单,给出几个种别(分类号、借阅情形、落款、出书者、著编者),供自选查询前提
<formname=“form_choice”action=“inq_modi.asp”>
<inputtype=“radio”name=“choice”value=“type”>分类号
<inputtype=“radio”name=“choice”value=“borrow”checked>借阅情形
<inputtype=“radio”name=“choice”value=“title”>落款
<inputtype=“radio”name=“choice”value=“press”>出书者
<inputtype=“radio”name=“choice”value=“author”>著编者
<b>包括:</b>
<inputtype=“text”name=“include”value=“<%=include%>”maxlength=“30”>
<inputtype=“submit”name=“Submit”value=“搜刮”>
</form>
实行查询操纵(inq_modi.asp)
<!--#includefile=“RsToModi.asp”-->
<%
//使用Request传回的值到数据库中查询响应的纪录
choice=Request(“choice”)
include=Request(“include”)
sql=“Select*From图书目次”
SelectCasechoice
case“borrow”
sql=sql&“Where借阅情形like‘%”&include&“%’”
titlestr=“借阅情形”
……
EndSelect
titlestr=titlestr&“包括”&include&“图书目次”
sql=sql&“Orderby分类号”
%>
//挪用RsToModi.asp显现查询了局
<%
Setconn=Server.CreateObject(“ADODB.Connection”)
conn.open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&Server.MapPath(“Books.mdb”)
Setrs=conn.Execute(sql)
RsToModiTablers
%>
显现查询了局(RsToModi.asp)
<%
SubRsToModiTable(rs)
’PartI获得图书序号和借阅情形字段值
Fori=0tors.Fields.Count-1
Response.WRITE“<TD>”&rs.Fields(i).Name&“</TD>”
ifrs.Fields(i).Name=“序号”then
bookidfield=i
endif
ifrs.Fields(i).Name=“借阅情形”then
linkfield=i
endif
Next
’PartⅡ创立借阅情形链接,挪用借阅情形修正页面
WhileNotrs.EOF
Fori=0tors.Fields.Count-1
ifilinkfieldthen
ifi=bookidfieldthen
bookidvalue=rs.Fields(i).Value
endif
iftrim(rs.Fields(i).Value)“”then
Response.WRITE“<TD>”&rs.Fields(i).Value&“</TD>”
else
Response.WRITE“<TD>”&“―”&“</TD>”
endif
else
linkstr=“<ahref=”&““””&“bookmodi.asp?bookid=”&bookidvalue&““””
linkstr=linkstr&“target=”&““””&“_blank”&““””&“>”
alignstr=“<palign=”&““””&“center”&““””&“>”
iftrim(rs.Fields(i).Value)“”then
Response.WRITE“<TD>”&alignstr&linkstr&rs.Fields(i).Value&“</a>”&“</TD>”
else
Response.WRITE“<TD>”&alignstr&linkstr&“无”&“</a>”&“</TD>”
endif
endif
Next
rs.MoveNext
Wend
EndSub
%>
借阅情形修正页面(BookModi.asp)
//将Request传送来的序号所对应的纪录显现在页面上,对册数、借阅情形、借阅日期字段举行修正
<%
BookID=Request(“BookID”)
DbPath=Server.MapPath(“Books.mdb”)
Setconn=Server.CreateObject(“ADODB.Connection”)
conn.open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DbPath
sql=“Select*From图书目次”
sql=sql&“Where序号=”&BookID
Setrs=conn.Execute(sql)
%>
//创立表单,对册数、借阅情形、借阅日期字段举行修正
<formAction=“BookUpdate.asp?BookID=<%=BookID%>”method=“POST”>
<tdheight=“35”width=“17”>序号</td>
……
<tdheight=“80”width=“17”><%=rs(“序号”)%></td>
……
<InputType=TextName=“BNumber”Value=<%=rs(“册数”)%>size=“3”>
<InputType=TextName=“BPerson”Value=<%=rs(“借阅情形”)%>></td>
<InputType=TextName=“BDate”Value=<%=rs(“借阅日期”)%>>
<p><inputtype=“submit”value=“修正”name=“MODIFY”>
<inputtype=“button”value=“加入”name=“EXIT”onclick=“window.close()”>
</p>
</form>
保留修正了局(BookUpdate.asp)
<!--#includefile=“adovbs.inc”-->
<%
BookID=Request(“BookID”)
DbPath=SERVER.MapPath(“Books.mdb”)
Setconn=Server.CreateObject(“ADODB.Connection”)
conn.open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DbPath
B_number=Request(“BNumber”)
B_person=Request(“BPerson”)
B_date=Request(“BDate”)
iflen(B_number)=0then
B_number=1
endif
iflen(B_person)=0then
B_person=“”
endif
iflen(B_date)=0then
B_date=“”
endif
Setrs=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
Setrs=conn.Execute(sql)
%>
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。 |
|