使用ASP实现基于WEB的数据库资料系统

web|数据|数据库

ASP简介
ASP(Active Server Page)是Microsoft公司推出的基于IIS(Internet Information Server)的动态网页开发技术。ASP都是以ISAPI(Internet Service API)的原理实现的,它通常使用VBScript语言进行HTML文件的嵌入式脚本设计,文件名后缀是.asp。它的原理如图1所示。
当浏览器向Web Server发出.asp请求时,Web Server开始运行ASP脚本程序,然后Web Server启动ASP,ASP将所请求的文件从头到尾进行检查,执行文件中的嵌入的ASP脚本,最后将执行结果HTML网页返回给Web Server。Web Server再将该HTML网页发送给客户端。这样,用户可以根据浏览器发出的请求设计ASP脚本,从而由不同的请求产生不同的脚本执行结果。ASP具有许多优点(如使用简单,执行效率较高等),但它同时也具有其先天的弱点,即它使用的是脚本语言,功能有限,难以完成许多复杂的业务功能。微软为了弥补这一弱点,提供了在ASP中使用ActiveX组件的功能,从而许多复杂的功能就可以用其它许多高级语言(如Visual C++)来实现,然后将这些功能包装为ActiveX,供ASP调用。ADO(ActiveX Data Object)就是在ASP中常用的数据库访问组件。

WEB数据库资料系统实现的关键技术
要实现基于WEB的数据库资料系统,关键要解决两个方面的问题。第一要实现将客户端文件资料通过浏览器上载到WEB服务器,并将文件内容保存到数据库中;第二要实现从数据库中读取资料内容,并将内容发送到客户端浏览器。为说明如何实现这两项技术,我们用一个简单的数据库进行示例(这里使用的数据库环境是MS SQL Server 6.5),这个数据库只有一个表(UploadFile),其结构如图2所示。
其中,id字段是关键字,自增类型;Title表示资料标题;FileName是上载的资料文件名;Content字段如何存放二进制资料文件内容。下面将讲述实现将客户端文件资料通过浏览器上载到WEB服务器,并将文件内容保存到数据库中以及如何从数据库中读取资料内容,并将内容发送到客户端浏览器。WEB服务器平台是Windows NT Server 4.0 + IIS4.0 +SQL Server 6.5,客户端使用IE4.0,系统调试通过。

使用ASP实现文件上载到WEB服务器
基于Web方式上载文件,要遵从RFC1867标准(IE3.0和Netscape 3.0 以上版本浏览器都支持)。但IIS没有提供这方面的支持。因此要使用ASP实现文件上载,必须调用相应的ActiveX组件,这个ActiveX组件ASP本身没有提供,可以自己开发(根据RFC1867标准),也可以使用第三方提供的组件。这里介绍的方法使用第三方的组件ASPUpload.dll,在使用前必须先在WEB服务器上注册(将ASPUpload.dll拷贝到\winnt\system32目录下,然后云运行“regsvr32 aspupload.dll”)。
其中客户端源文件如下(uploadTest.htm):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文件上载客户端</title>
</head>
<body>
<form method="POST" action="uploadTest1.asp" enctype="multipart/form-data"
name="UPloadForm">
<p><input type="file" Name="File1"> </p>
<p><input type="submit" value="Submit" name="Upload"></p>
</form>
</body>
</html>
其中客户端文件要注意两点:
* 文件上载提交表单(Form)的enctype必须指定为“multipart/form-data”
* 语句<input type="file" Name="File1">表示上载文件域,用户可以在该域中输入或选定文件。
服务器端源文件如下(uploadTest1.asp):
<%response.buffer=true%>
<html>
<%Set Upload=Server.createobject("Persits.Upload.1") '创建文件上载组件
Count=Upload.Save("e:\aspupload") '将客户端文件保存到WEB服务器端的本地硬盘上%>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Upload Test</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<p>上载了<%=Count%>个文件</p>
<p>File has been uploaded.</p>
</body>
</html>
其中,脚本Set Upload=Server.createobject("Persits.Upload.1")创建了文件上载组件,该组件通过调用Save方法将浏览器端的文件内容保存到指定路径。

将文件存在数据库中
将文件保存在数据库中主要用了ASPUpLoad组件中文件对象的ToDatabase方法。源文件如下:
客户端源文件(uploadToDB.htm):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文件上载客户端</title>
</head>
<body>
<form method="POST" action="UploadToDB.asp" enctype="multipart/form-data"
name="FormUpload">
<p><input type="file" name="FileUpload"> </p>
<p><input type="submit" value="上载" name="B1"></p>
</form>
<p><a href="readFile.asp">读取数据库中文件</a></p>
</body>
</html>

服务器端源文件(uploadToDB.asp):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>文件上载到数据库</title>
</head>
<body>
<%Set Upload=Server.createobject("Persits.Upload.1")
Count=Upload.Save("e:\aspupload")
on error resume next
set FileObj=Upload.Files("FileUpload")
SQL="insert into upLoadFile (Title,FileName,Content) values ('"&FileObj.Path&"','"&FileObj.Path&"',?)"
response.write SQL
FileObj.ToDatabase "DSN=FileUpload;UID=sa;",SQL
if Err<>0 then
Response.write "Error Saving the file:"&Err.Description
else
FileObj.delete
response.write "Success!"
end if
%>
</body>
</html>

从数据库中读取文件内容并发送给客户端浏览器
从数据库中读取内容在发送给浏览器之前,首先必须让浏览器知道内容的数据类型,这通过向客户端发送ContentType描述实现。为简单起见,这里假设发送的内容是Word文档,并且显示最新插入的记录。源文件如下:
客户端源文件为uploadToDB.htm(同上一部分的客户端文件)。
服务器端源文件(readFile.asp):
<%Response.Expires = 0
response.buffer=true%>
<%response.clear
Response.ContentType = "application/msword"
set conn=server.createobject("adodb.connection")
conn.open "DSN=FileUpload;UID=sa;"
set rs1=conn.execute("select maxid=max(id) from uploadFile")
SQL="select * from uploadFile where id="&rs1("maxid")
set rs=conn.execute(SQL)
Response.BinaryWrite rs("Content")
rs.close
rs1.close
conn.close
Response.End
%>
其中,Web Server向客户端发送Content-Type="application/msword",使客户端认为这是Word文档,然后服务器从数据库中读取文件内容(为简单起见,假定是数据库中最后一条记录),然后以二进制流的方式向客户端发送(调用ASP内置对象Response的BinaryWrite方法)。当客户端接收到这些内容后便自动启动Word OLE服务,使Word控件嵌在浏览器IE中将收到的内容格式化显示。

总结
综上,通过使用ASP脚本和文件上载组件及ADO组件,可以方便地实现WEB数据库资料系统的关键技术。有了上述技术,对于基于WEB的数据库资料的简单系统便可以很容易地得到扩充和实现。笔者以上述技术为核心开发了一套Internet上的数据库档案资料管理系统,系统非常稳定可靠(很大一部分要归功于aspUpload组件的稳定性),档案内容包含html、word、excel、文本、图像等各种格式,档案资料的管理、维护和检索十分方便,受到用户的一致好评。

时间: 2024-10-30 02:08:46

使用ASP实现基于WEB的数据库资料系统的相关文章

数据库建模 数据库-基于web的数据库建模系统的源码!重谢!!!!!!!发邮箱1439943801@qq.com

问题描述 基于web的数据库建模系统的源码!重谢!!!!!!!发邮箱1439943801@qq.com 求基于web的数据库建模系统的源码!网页版的数据库建模平台,最简单的就行我重谢!!!!!!!发邮箱1439943801@qq.com

[转]Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安装

apache|web|数据|数据库 发信人: xiaoning (我要飞), 信区: Linux 标  题: Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安 发信站: BBS 水木清华站 (Thu Jan 20 16:00:28 2000)   以下将说明使用Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安装和配置方法 . 关于Apache.PHP3和PostgreSQL的更多内容可以从软件的附带文档.Linux的HOWTO文件   以及以下

基于WEB的数据库查询

本文通过一个实例介绍用ODBIC编写在中文WIN95下访问SQLSERVER数据库的应用程序,体会以下ODBIC功能的灵活.方便.易学的,推荐给大家共免. 97年以来基于WEB的数据库应用在数据库界谈论的颇多,基于WEB的数据库的应用,是将数据库和WEB技术结合,按照BROWS/SERVER结构建立的通过浏览器访问数据库的服务系统.目前以WEB数据库为旗帜的产品.原形或设计方案及研究论文很多,开发数据库的WEB应用,建立能与数据库交互的WEB网页,大致有三中方法:其一是网关接口(CGI),其二是

asp.net基于Web Service实现远程上传图片的方法_实用技巧

本文实例讲述了asp.net基于Web Service实现远程上传图片的方法.分享给大家供大家参考,具体如下: 页面调用代码: 前提添加Web 引用 HttpFileCollection files = HttpContext.Current.Request.Files; string filePath = files[0].FileName; string fileName = filePath.Substring(filePath.LastIndexOf("//") + 1); b

OpenGTS 2.3.8发布 基于Web的GPS跟踪系统

OpenGTS 2.3.8此版本包括大多数TK102/TK103全球http://www.aliyun.com/zixun/aggregation/17404.html">定位系统跟踪装置的支持.它有一个更新的JSON API在"events.war"中.增加了Unicode字符编码显示在地图上的地址和其他文字.它有一个更新的西班牙语翻译.及各种错误修正. OpenGTS(Open sourced GPS Tracking System)提供一个基础框架用于创建属于你的

基于DB2的数据库应用系统的性能优化

摘要 结合DB2的使用经验,从数据库设计.查询优化.并发控制.客户/服务器模式四个方面来讨论数据库应用系统性能优化的一些原则.方法等. 关键词 DB2 性能优化 数据库设计 查询优化 并发控制 C/S模式 引言 DB2是一种高性能的大型关系数据库管理系统,广泛的应用在客户/服务器体系结构中.评价系统性能优化的标准有:吞吐量.响应时间.并行能力等.本文从数据库的设计.查询的优化.并发控制以及客户/服务器模式这四个角度来讨论优化系统性能. 设计数据库 1. 熟悉业务系统 对业务系统的熟悉程度对整个数

基于Web的制造追溯系统DEMO

写在前面 本文不贴任何代码,以图片为主,也许图片更直观,请各位园友谅解! 很久没有写过博客了,这是2016年的第一篇文章:最近主要是忙着完成公司的一个新项目,逛园子的时间都明显少了,只有下班回到家睡觉之前浏览一下首页的文章:也许这是借口,但却也是事实,以前每天凌晨1点之前从不会睡觉(逛论坛.搞程序等),现在下班回来只想睡觉,精力不够:白天在公司要做公司的项目(开弓没有回头箭,要做就必须做好),下班回来还需整合自己的一个Deom,仍然是与生产有关的,毕竟作者从参加工作以来几乎都是从事的生产制造方面

基于Web的交互式数据库查询技术简介

web|交互|数据|数据库 1 概述 Web技术是一项很新的技术,它不仅为Internet的广泛普及起到关键性的作用,而且还在其他相关计算机网络应用技术发展中起到关键作用,例如Intranet.电子商务等,目前它已成为计算机网络应用的一个主要技术,尤其重要的技术是web动态技术,与后台数据库的交互式动态查询技术.本文针对常用的web动态技术,与数据库交互技术作以介绍. 2 实现Web动态技术的几种方法 2.1 利用CGI实现Web动态技术 在Web应用中,与其他动态编程技术相比,CGI技术虽然是

基于Web的免费Email建立大容量系统

电子邮件(electronic mail,简称E-mail,标志:@,也被大家昵称为"伊妹儿")又称电子信箱.电子邮政,它是-种用电子手段提供信息交换的通信方式.是Internet应用最广的服务:通过网络的电子邮件系统,用户可以用非常低廉的价格(不管发送到哪里,都只需负担电话费和网费即可),以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联系,这些电子邮件可以是文字.图象.声音等各种方式. &http://www.aliyun.c