基于ASP技术开发Web数据库检索程序
摘 要:文章以ASP技术为基础,介绍了基于ASP技术开发数据库检索程序的产生机理和
方法,并针对Web数据库检索程序特点,采用全文检索数据库方式,来实现基于ASP技术
开发Web数据库检索程序。
关键词:ASP技术;Web数据库;检索程序
1 前 言
1.1 ASP(Active Service Page),是微软推出的动态Web设计技术,是一种用于WWW服务的服务器端脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。利用它,可以很容易地把HTML标记、文本、脚本命令及ActiveX组件混合在一起构成ASP页,以此来生成动态网页,创建交互式的Web站点,实现对Web数据库的访问。
1.2 当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML
方法,并针对Web数据库检索程序特点,采用全文检索数据库方式,来实现基于ASP技术
开发Web数据库检索程序。
关键词:ASP技术;Web数据库;检索程序
1 前 言
1.1 ASP(Active Service Page),是微软推出的动态Web设计技术,是一种用于WWW服务的服务器端脚本环境,在站点的Web服务器上解释脚本,可产生并执行动态、交互式、高效率的站点服务器应用程序。利用它,可以很容易地把HTML标记、文本、脚本命令及ActiveX组件混合在一起构成ASP页,以此来生成动态网页,创建交互式的Web站点,实现对Web数据库的访问。
1.2 当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML
主页返回用户端显示。
2 ASP技术及访问机理
由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器。ASP技术的核心是内置的ActiveX服务器组件和对象。ActiveX服务器组件包括∶数据库访问组件(Database Access component),提供访问服务器数据库的功能;文件访问组件(File Access component),提供读写服务器文件的功能;广告轮播器组件(Ad Rotator component),提供广告轮播器的功能;内容链接组件(Content Linking component),提供管理超级链接、上一页、下一页等链接功能;浏览器信息组件(Browser Capabilities Component),提供有关浏览器信息。内置对象包括∶请求(Request),从前端用户取得信息;响应(Response),将信息送给前端用户;服务器(Server),提供Web服务器工具。应用(Application),管理所有的会话信息,供所有用户共享;会话(Session),储存一次会话内的用户信息,仅被该用户访问;对象上下文(ObjectContext),配合Transaction服务器进行分布式事务处理。
3 数据库检索程序的开发
ASP技术是开发网上数据库服务系统的重要手段,利用ASP技术可以进行有效的网上数据库
2 ASP技术及访问机理
由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器。ASP技术的核心是内置的ActiveX服务器组件和对象。ActiveX服务器组件包括∶数据库访问组件(Database Access component),提供访问服务器数据库的功能;文件访问组件(File Access component),提供读写服务器文件的功能;广告轮播器组件(Ad Rotator component),提供广告轮播器的功能;内容链接组件(Content Linking component),提供管理超级链接、上一页、下一页等链接功能;浏览器信息组件(Browser Capabilities Component),提供有关浏览器信息。内置对象包括∶请求(Request),从前端用户取得信息;响应(Response),将信息送给前端用户;服务器(Server),提供Web服务器工具。应用(Application),管理所有的会话信息,供所有用户共享;会话(Session),储存一次会话内的用户信息,仅被该用户访问;对象上下文(ObjectContext),配合Transaction服务器进行分布式事务处理。
3 数据库检索程序的开发
ASP技术是开发网上数据库服务系统的重要手段,利用ASP技术可以进行有效的网上数据库
检索系统的开发利用。
3.1 通用检索主页的设计
通用检索主页的设计,实际就是对一个HTML FORM表单进行编码和提交的过程。FORM表单是HTML中能够实现Web页面交互性的重要组成部分,它为Web页面提供了丰富的交互对象,可以方便地完成信息查询条件的录入及数据库、检索途径的选择等。
3.2 数据库接口程序设计
数据库接口程序设计的关键是通过ActiveX服务器组件ADO及包含的对象,实现对数据源的读写,用户可在浏览器画面中检索、输入、更新和删除数据库信息,从而建立提供数据库信息的主页内容。ADO主要提供了七个对象和四个集合来完成对于数据库的管理,包括:Connection、Command、Parameter、Recordset、Field、Property、Error以及Fields、Properties、Parameters、Errors。
3.2.1 定义数据源
在WEB服务器上打开“控制面板”,选中“ODBC”,在“系统DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。本文定义“SQL SERVER”,数据源为“HT”,数据库名称为“HTDATA”,脚本语言采用Jscript。
3.1 通用检索主页的设计
通用检索主页的设计,实际就是对一个HTML FORM表单进行编码和提交的过程。FORM表单是HTML中能够实现Web页面交互性的重要组成部分,它为Web页面提供了丰富的交互对象,可以方便地完成信息查询条件的录入及数据库、检索途径的选择等。
3.2 数据库接口程序设计
数据库接口程序设计的关键是通过ActiveX服务器组件ADO及包含的对象,实现对数据源的读写,用户可在浏览器画面中检索、输入、更新和删除数据库信息,从而建立提供数据库信息的主页内容。ADO主要提供了七个对象和四个集合来完成对于数据库的管理,包括:Connection、Command、Parameter、Recordset、Field、Property、Error以及Fields、Properties、Parameters、Errors。
3.2.1 定义数据源
在WEB服务器上打开“控制面板”,选中“ODBC”,在“系统DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。本文定义“SQL SERVER”,数据源为“HT”,数据库名称为“HTDATA”,脚本语言采用Jscript。
3.2.2 创建数据库链接(Connection)
创建数据库链接(Connection)。通过服务器对象的CreateObject方法,可以创建Connection对象和使用变量接受对象引用。一旦连接对象创建之后,它就可用来打开到任何ODBC数据源的连接。
3.2.3 创建数据对象(Recordset)
创建数据对象(Recordset)。
Dim Rs ‘申明变量’
Set Rs=Server.CreatObject("ADODB.Recordset") ‘创建数据对象’
Rs.PageSize=10 ‘设置一页所显示的记录数’
3.2.4 操作数据库
(1)首先要定义SQL查询语句:
Dim sql ‘申明变量’
sql="select * from publication where title like ’ASP%%’" ‘定义SQL查询语句’,检索数据库的publication表中名以ASP开头的所有信息的记录。
Const adOpenkeyset=1 ‘定义Recordset的类型’
创建数据库链接(Connection)。通过服务器对象的CreateObject方法,可以创建Connection对象和使用变量接受对象引用。一旦连接对象创建之后,它就可用来打开到任何ODBC数据源的连接。
3.2.3 创建数据对象(Recordset)
创建数据对象(Recordset)。
Dim Rs ‘申明变量’
Set Rs=Server.CreatObject("ADODB.Recordset") ‘创建数据对象’
Rs.PageSize=10 ‘设置一页所显示的记录数’
3.2.4 操作数据库
(1)首先要定义SQL查询语句:
Dim sql ‘申明变量’
sql="select * from publication where title like ’ASP%%’" ‘定义SQL查询语句’,检索数据库的publication表中名以ASP开头的所有信息的记录。
Const adOpenkeyset=1 ‘定义Recordset的类型’
(2)然后执行该查询命令,Rs.Open Sql,conn, adOpenkeyset ‘执行sql语句’,在数据对象Rs中保存检索结果。
如调用Server.CreateObject方法取得“ADODB.Connection”的实例,再使用Open方法打开数据库:
conn = Server.CreateObject(“ADODB.Connection”)
conn.Open(“HT”)
来操作数据库。
(3)最后指定要执行的SQL命令
连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录
sqlStr = “select * from signaltab where code like ‘%X%’”
rs = conn.Execute(sqlStr)
4 数据库检索代码
基于ASP技术开发的Web数据库检索程序,是利用数据库检索系统网络结构和开发工具,将多个数据库集成在一个平台上,来实现多数据库的检索,从而提高数据库的检索效率。
如调用Server.CreateObject方法取得“ADODB.Connection”的实例,再使用Open方法打开数据库:
conn = Server.CreateObject(“ADODB.Connection”)
conn.Open(“HT”)
来操作数据库。
(3)最后指定要执行的SQL命令
连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录
sqlStr = “select * from signaltab where code like ‘%X%’”
rs = conn.Execute(sqlStr)
4 数据库检索代码
基于ASP技术开发的Web数据库检索程序,是利用数据库检索系统网络结构和开发工具,将多个数据库集成在一个平台上,来实现多数据库的检索,从而提高数据库的检索效率。
以下是一个全文索引的数据库检索部分代码:
Sub Initialize
Dim ArrNsf As Variant
Dim item As NotesItem
’获得文档 context,因为此代理是一个$$QuerySaveAgent,所以$$QuerySaveAgent
可以访问 Context文档上的项目。
Dim sess As New NotesSession
Dim doc As NotesDocument
Set doc = sess.DocumentContext
’获得欲检索的数据库,存放在数组ArrNsf内:
ArrNsf= doc.DatabaseName
’如果没有输入检索条件,则输出提示信息:
If Trim(Cstr(doc.Query(0)))="" Then
Goto EmptyQuery
End If
Sub Initialize
Dim ArrNsf As Variant
Dim item As NotesItem
’获得文档 context,因为此代理是一个$$QuerySaveAgent,所以$$QuerySaveAgent
可以访问 Context文档上的项目。
Dim sess As New NotesSession
Dim doc As NotesDocument
Set doc = sess.DocumentContext
’获得欲检索的数据库,存放在数组ArrNsf内:
ArrNsf= doc.DatabaseName
’如果没有输入检索条件,则输出提示信息:
If Trim(Cstr(doc.Query(0)))="" Then
Goto EmptyQuery
End If
Dim MatchDoc As NotesDocument
Dim db As NotesDatabase,
Dim collection As NotesDocumentCollection
’下列循环从数组ArrNsf中取得欲检索的数据库进行处理:
For nsfCount=0 To Ubound( ArrNsf )
SearchDB=ArrNsf(nsfCount)
Set db = sess.GetDatabase("",SearchDB)
’出现错误则转向:
On Error Goto BadQuery
’获得满足查询条件的记录集:
Set collection = db.FTSearch(doc.Query(0),0)
On Error Goto 0
’输出数据库标题:
Dim db As NotesDatabase,
Dim collection As NotesDocumentCollection
’下列循环从数组ArrNsf中取得欲检索的数据库进行处理:
For nsfCount=0 To Ubound( ArrNsf )
SearchDB=ArrNsf(nsfCount)
Set db = sess.GetDatabase("",SearchDB)
’出现错误则转向:
On Error Goto BadQuery
’获得满足查询条件的记录集:
Set collection = db.FTSearch(doc.Query(0),0)
On Error Goto 0
’输出数据库标题:
’输出该数据库中满足条件的记录个数:
There are " & Str$(collection.Count) & " matching
There are " & Str$(collection.Count) & " matching
documents
’下列循环从满足条件的记录集中读取记录并输出:
For i% = 1 To collection.Count
Set MatchDoc = collection.GetNthDocument(i%)
’如果文档包含Subject或Title,则输出Subject或Title:
Set item =MatchDoc.GetFirstItem( "Subject" )
If ( item Is Nothing ) Then
Set item = MatchDoc.GetFirstItem( "Title" )
End If
If Not (item Is Nothing) Then
" & item.Name & ": & item.Text
End If
’下列循环从满足条件的记录集中读取记录并输出:
For i% = 1 To collection.Count
Set MatchDoc = collection.GetNthDocument(i%)
’如果文档包含Subject或Title,则输出Subject或Title:
Set item =MatchDoc.GetFirstItem( "Subject" )
If ( item Is Nothing ) Then
Set item = MatchDoc.GetFirstItem( "Title" )
End If
If Not (item Is Nothing) Then
" & item.Name & ": & item.Text
End If
’如果文档包含Categories,则输出Categories:
Set item = MatchDoc.GetFirstItem( "Categories" )
If Not (item Is Nothing) Then
Print item.Name & ": " & item.Text
End If
’输出文档产生日期和作者:
createDate = MatchDoc.Created
Document create date: &createDate
Authors:
Forall aAuthor In MatchDoc.Authors
Print aAuthor
End Forall
Next
Set item = MatchDoc.GetFirstItem( "Categories" )
If Not (item Is Nothing) Then
Print item.Name & ": " & item.Text
End If
’输出文档产生日期和作者:
createDate = MatchDoc.Created
Document create date: &createDate
Authors:
Forall aAuthor In MatchDoc.Authors
Print aAuthor
End Forall
Next
Next
Out:
Exit Sub
EmptyQuery:
Search query can not be empty
Resume Out
web下载官方下载BadQuery:
Query is not understandable: " & doc.Query(0) & {"
Resume Out
End Sub
5 总 结
5.1 Web服务的应用越来越广,其数据索引也随之有增无减。同时,在编写Web数据库检索代码时,既要考虑其安全性,又要确保应用的高质量,致使及时开发相应的数据库检索程序越来越迫切。
Out:
Exit Sub
EmptyQuery:
Search query can not be empty
Resume Out
web下载官方下载BadQuery:
Query is not understandable: " & doc.Query(0) & {"
Resume Out
End Sub
5 总 结
5.1 Web服务的应用越来越广,其数据索引也随之有增无减。同时,在编写Web数据库检索代码时,既要考虑其安全性,又要确保应用的高质量,致使及时开发相应的数据库检索程序越来越迫切。
5.2 ASP技术是中小型自主开发网上数据库服务系统工具。本文从Web网上数据库检索系统的设计出发,探讨了如何利用ASP技术进行有效的网上数据库检索系统的开发利用,具有较强的现实意义。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论