
 
 | 
| 技术资料  > ASP技术 > 客户端相关 : ASP编写数据库维护程序 |  
ASP编写数据库维护程序 March 25,2004 |  
  ASP(Active Server Pages)是Microsoft公司动态访问网络数据库 
的最新技术,目前在Web开发中得到越来越广泛的应用。ASP编程非常灵 
活,本文通过开发一个数据库维护程序,讲述一下ASP的编程方法。 
  开发运行环境 
  Oracle服务器:操作系统为UNIX,安装了Oracle8数据库。 
  Web服务器:奔腾586,操作系统为NT4.0,在其上安装了Web Server 
IIS4.0、Oracle Net8 for Client,并创建好了和Oracle8数据库的OD 
BC接口。 
  客户机:Win 95/98操作系统,普通浏览器(Netscape4、IE4或以 
上版本),并安装开发工具Frontpage 98。 
  系统总体网络协议为TCP/IP。 
  Web服务器上ODBC的配置 
  首先在Web服务器Windows NT上安装访问数据库的ODBC驱动程序, 
利用ODBC检测工具软件测试与数据库是否连通(运行Oracle ODBC TEST 
)。连通后,在NT的控制面版中ODBC的正确配置举例如下:microsoft  
odbc for oracle安装 数据源名称(即odbc的名字) infosystem 描 
述(d) 信息 oracle用户名称(u) user—name oracle用户密码 use 
r—passwd 服务器(s) ora8  
  编写源代码 
  数据库的维护包括增加、删除、修改、保存和查询操作。下边这段 
程序是对Oracle用户为user—name(密码为user—passwd)中的表tab 
—code(编码库)进行维护,tab—code有两个字段,即bm(编码字段, 
字符型,5位)和mc(名称字段,字符型,20位)。 
  1.与数据库连接,定义子例程: 
  <%'赋初值%>  
  <% mc=Request("mc") %> 
  <%'连接源数据库%> 
  <% 
  Set Conn=Server.CreateObject("ADODB.Connection") 
  Conn.Open "infosystem","user—name","user—passwd"  
  '参数的含义见上表 
  set bmrs = Conn.Execute("SELECT bm FROM bmb where mc=' "&m 
c&" ' ") 
  temp1 = bmrs("bm") 
  sql—1 = request("sql—1") 
  if sql—1 = " " then 
  sql—1="SELECT bm,mc FROM table—code WHERE bm like ' " &  
temp1 & "%' order by bm" 
  end if 
  Call treat() 
  %> 
  <% 
  Sub Reset() 
  bm = " " 
  temp2 = " " 
  End Sub 
  %> 
  <% 
  Call Reset() 
  num—recn = Conn.Execute("SELECT Max(bm) FROM table—code  
WHERE bm like ' " & temp1 & "%' ") 
  %> 
  <% 
  Sub treat() 
  Set num—recn = Conn.Execute(sql—1) 
  if num—recn.eof then  
  else 
  sum—recn = 0 
  Do While Not num—recn.EOF 
  num—recn.MoveNext 
  sum—recn = sum—recn+1 
  Loop 
  if sum—recn <> 0 then 
  sele—recn=sum—recn 
  num—recn.MoveFirst 
  num—recn.Move(sum—recn-1) 
  Call extract() 
  end if 
  end if 
  End Sub 
  %> 
  <% 
  Sub extract() 
  bm = num—recn("bm") 
  temp2 = num—recn(1) 
  num—recn.Close 
  End Sub 
  %> 
  2.增加一条记录: 
  <% 
  sum—recn =sum—recn + 1 
  bm = Request("bm")  
  temp2 = Request("temp2")  
  Insertsql = "INSERT INTO table—code(bm,mc) VALUES (' " &  
bm & " ',' " & temp2 & " ')"  
  Set Insertrs = Conn.Execute(Insertsql) 
  %> 
  3.删除当前记录: 
  <%bm = Request("bm") 
  set delrs = Conn.Execute("Delete From table—code where bm 
=' " & bm &" ' ") 
  Call treat()  
  %> 
  4.更新当前记录后入库(提交更新过的记录): 
  <%  
  bm = Request("bm")  
  temp2 = Request("temp2")  
  UpdateSQL = "UPDATE table—code SET mc=' " & temp2 & " ' w 
here bm=' " & bm &" ' " 
  Set UpdateRS=Conn.Execute(UpdateSQL) 
  %> 
  5.设置查询条件(内容),输出查询结果: 
  <% 
  Call Reset() 
  temp2 = Request("temp2")  
  sql—1="SELECT bm,mc FROM table—code WHERE mc like ' " &  
temp2 & "%' order by bm" 
  call treat() 
  %> 
  '到第一条记录 
  <% 
  Set num—recn = Conn.Execute(sql—1) 
  sum—recn = Request("sum—recn") 
  sele—recn=1 
  Call extract() 
  %> 
  <% 
  '查找前一条记录 
  Set num—recn = Conn.Execute(sql—1) 
  sele—recn = Request("sele—recn") 
  sum—recn = Request("sum—recn") 
  if sele—recn >1 then 
  sele—recn = sele—recn-1 
  num—recn.Move(sele—recn-1) 
  end if 
  Call extract() 
  %> 
  <% 
  '查找下一条记录 
  Set num—recn = Conn.Execute(sql—1) 
  sele—recn = Request("sele—recn") 
  sum—recn = Request("sum—recn") 
  if CInt(sele—recn) < CInt(sum—recn) then 
  sele—recn=sele—recn+1 
  num—recn.Move(sele—recn-1) 
  else 
  num—recn.MoveFirst 
  num—recn.Move(sum—recn-1) 
  end if 
  Call extract() 
  %> 
  <% 
  '到最后一条记录 
  Call treat() 
  %> 
  开发过程中遇到的问题及解决方法 
  1.用Frontpage98配合ASP技术的开发模式,虽然不是很标准,但是 
编程效率高,而且简单易行。而用Studio6.0中的INTER DEV进行编程, 
应该是最标准的,但其编程复杂,维护难度大。 
  为了提高效率和保持代码的正确性,我们可用记事本打开ASP程序 
,将部分代码输入或粘贴上去,从而避免程序代码的丢失或篡改。 
  2.有时ASP程序访问数据库时,如果遇到网络瓶颈等因素,速度会 
变慢,此时往往会返回“运行超时”的错误,解决此问题的方法是,将 
延时时间设得足够大,如: 
  <%server.scripttimeout=10000%>  |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved