随着internet技术的迅速发展,计算机在各个行业越来越发挥着举足轻重的作用。利用先进的信息技术和数据库技术,构建公司内部的intranet,开发基于web的数据库管理系统,能极大的提高工作效率、节约成本。asp(active server page)是microsoft推出的一种服务器端命令执行环境,与浏览器无关,脚本完全在服务器运行,将产生动态的信息,形成普通的html文件,发送到客户端。ado(activex data objects)是asp内置的activex服务器组件,可以在用户端实现“即时更新、即时显示”的最新web数据库技术,可以很方便的通过浏览器页面实现对 数据的输入、查询、更新等操作。
一、 利用asp和ado实现数据库操作的工作流程
asp内嵌了五个对象resquest、response、server、seesion、application,实现信息的获取、传送及保存等。ado的主要对象有connection、command、recordset等。利用ado的connection 对象和odbc的设定,可以建立与多种数据库(informix、oracle、access等)的连接,从而实现数据的输入、查询、更新等操作。首先,利用asp的server对象的createobject方法创建一个ado的对象实例,以ado的connection对象建立相应数据库与应用程序之间的联接;接着,通过command对象将数据请求的sql(standard query language)标准描述语句指定到command对象的属性,然后执行数据库的输入、查询等操作;最后,数据库服务器将响应的数据结果存储到recordset对象,在服务器端的脚本语言环境中就可以加以处理、分析、显示数据于客户端浏览器上。
二、 实现数据输入、查询的实例
公司的分支机构众多、分布广泛,上级机构经常要对各基层机构的业务数据进行汇总,统计。以前主要是通过电话上报数据,然后手工汇总、统计,编制成报表。随着公司内部的联网,就可以将网络技术和数据库技术结合,将数据的汇总、统计实现自动化。以下将结合公司的实际,通过与informix数据库的连接实现此功能:
1.创建数据库
在unix操作系统上创建一个用于数据汇总、统计的数据库,将数据库命名为cxdb,在此数据库上创建如下表:
create table test
(
br char(6), #单位代码
dt date, #日期
sco money,#业绩
)
2. 连接数据库
在windows98操作系统上,安装数据库连接驱动程序informix-cli,并运行informix-cli的setnet32进行配置,然后运行ilogin 32 demo 测试配置是否正确。确认配置成功后,就可以对web数据库实现各种操作了。在网页中加入如下语句,就能对unix端的数据库进行连接:
set con=server.createobject(“adodb.connection”)
con.open “driver={informix-cli 2.5 (32bit)};database=cxdb;server=11.32.65.45;uid=;pwd=”
其中,driver是数据库的连接驱动程序,其字符串要与odbc驱动程序中的名称保持一致;database是数据库名称;server是数据库服务器主机的ip地址或名称,如果为名称则必须编辑hosts文件;uid是为用户名称;pwd为口令。
3.实现数据的输入、查询
为实现对数据的输入、查询功能,必须创建一个带有form表单的文件,用来接受用户的数据输入及查询条件,利用post方法将form表单的数据提交给服务器进行处理。
编辑接受用户输入的文件input.asp,由用户输入“单位”、“日期”、“业绩“,当用户点击提交按钮时,通过post方法将刚才输入的数据发送web服务器,并执行todb.asp文件在数据库cxdb中增加一条记录。其中,input.asp和todb.asp的源代码如下:
input.asp:
<html>
<head>
<title>输入数据</title>
</head>
<body>
<form method="post" action="todb.asp">
<p>单位:<input type="text" name="t1" size="20">
<p>日期:<input type="text" name="t2" size="20">
<p>业绩:<input type="text" name="t3" size="20">
<p><input type="submit" value="提交" name="b1">
<input type="reset" value="重写" name="b2">
</form>
</body>
</html>
todb.asp:
<% br=request.form("t1")
dt=request.form("t2")
sc=request.form("t3") ‘将input.asp表单中的数据取出到变量br,dt,sc中
set con=server.createobject(“adodb.connection”)
con.open “driver={informix-cli 2.5 (32bit)};database=cxdb;server=11.32.65.45;uid=;pwd=”
‘以上两语句为建立ado对象,并连接数据库
sql="insert into test( br,dt,sc) values("&br&","&dt&","&sc&")"
set rs=con.execute(sql) ’执行sql语句将数据增加到数据库中
rs.close
con.close
%>
数据的查询与输入一样的实现,只是执行的sql语句不同,查询执行是的满足用户输入条件的select语句。源代码如下:
indt.asp
<html>
<head>
<title>输入条件</title>
</head>
<body>
<form method="post" action="seldt.asp">
<p>日期:<input type="text" name="t1" size="20">
<p>
<input type="submit" value="提交" name="b1">
<input type="reset" value="重写" name="b2">
</form>
</body>
</html>
seldt.asp
<html>
<head>
<title>执行查询并显示结果</title>
</head>
<body>
<% dt=request.form("t1") ‘将indt.asp表单中的数据取出到变量dt中
set con=server.createobject(“adodb.connection”)
con.open “driver={informix-cli 2.5 (32bit)};database=cxdb;server=11.32.65.45;uid=;pwd=”
‘以上两语句为建立ado对象,并连接数据库
sql="select sco as sm from test where dt=’#”&dt&”#’”
set rs=con.execute(sql) ’执行sql语句从数据库中查找满足条件的数据
if not rs.eof then ‘判断是否有满足条件的数据
do while not rs.eof
response.write dt&” 业绩是: “&rs(“sco”)&”<br>” ‘循环将满足条件的数据显示
rs.movenext
loop
end if
rs.close
con.close ‘关闭连接
%>
</body>
</html>
三、 结束语
asp在windows98上的运行必须安装personal web server4.0 以上版本。本文以一个非常简单的实例,介绍了以asp实现数据的输入、查询的基本方法。在实际编程中,可以将asp和sql有机地结合,实现诸如某时间间隔的统计、排序、分组的查询,有条件的更新、删除数据等更加复杂的操作。
