随着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有机地结合,实现诸如某时间间隔的统计、排序、分组的查询,有条件的更新、删除数据等更加复杂的操作。