2024年6月21日发(作者:)
维普资讯
第8卷第2期
2008年6月
南京工业职业技术学院学报
Journal of Nanjing Institute of Industry Technology
Vo1.8.No.2
Jun.,2008
文章编号:1671—4644(2008)02—0049—03
基于ASP的通用条件查询模块的设计与实现
张跃东
(江苏省南京工程高等职业学校 电子工程系,江苏 南京
摘
211135)
要:以VBScript、JavaScript语言为基础.以教务管理系统查询功能为例,基于ASP设计并建立了一个通用的查询
模块,为简化应用程序的编写提供了一种行之有效的方法。
关键词:ASP;查询;SQI Server
中图分类号:TP391.3 文献标识码:A
过程,实现上述功能。
Sub SearchField()
Dim i,j,Sql
SET Conn=Server.CreateObject(”ADODB.Connection”)
Conn.Open”Server=127.0.0.1:Provider=sqloledb:Da—
tabase=education;UID=sa;PWD=sa;”
在大型的ASP项目中,查询是必不可少的功能之一。用
户要求能够针对特定的字段进行查询,为此很多应用系统通
过编写多个查询模块,以满足不同的查询要求。但是,如果
在大型的ASP项目中这么做的话,不仅增加了工作量、影响
开发进度,而且不能使系统模块化、代码复用,增加了系统维
护难度” 。本文以教务管理系统查询功能为例,基于ASP设
计并建立一个通用的查询模块,达到多种条件查询的目的,
Set S=SeIverr.CreateObject(”ADODB.Recordset”)
Sql=”select from teacher where 1<>l”
大家可以借鉴在不同的语言环境下实现通用查询的方法。
l 设计思路
基于ASP设计并建立一个通用的查询模块所遵循的设
计思路分如下几个步骤:
rs.open sql,Conn,1,1
j=rs.Fields.count
For i=0 Io(j—1)
Response.Write”<option Value=”&rs.Fields(i).
Name&”>”&rs.Fieldsfi).Name&”</option>”
Next
rs.close
(1)读取数据库表的架构信息。由于编写通用模块,本
环节采用动态获取字段方法。为后面的操作提供依据 。
(2)显示获取的字段名称,即把动态获取的字段名称显
示出来,供用户选择使用。
(3)选择查询字段(字段);
(4)选择查询条件(<、>、=
Not Null、Like);
Conn.close
Set rs=Nothing
Set Conn=Nothing
End Sub
(5)输入条件值;
(6)选择运算关系(Or、And);
(7)将查询条件添加到列表框、或从列表框删除。
(8)将查询条件作为参数传递给服务器端的应用程序,
实现用户理想的查询表单。
执行过程SearchField(),实现动态获取表的字段名称,
并显示出来供用户选择使用,如图1所示。
2 实现过程及主要源代码
本文以SQL Server 2000中education数据库的teacher表
为例,登录用户名:sa;登录口令:“sa”。
2.1初始化数据库链接,获取数据表字段
通过ADO对象实现对数据库操作。使用ADO的Con—
nection、Command和Recordset,可以完成与数据库连接的建
立,SQL语句的执行,实现把动态获取的字段名称显示出来,
姓名
供用户选择使用。下面利用vbscript定义一个SearchField()
收稿日期:2008—01—21
性别
出生年月
工作B--I ̄
教学时间
最高学历
最高学历取得时间
最高学位
最高学位取得时间
一
,
图1 把表中的宇段名显示在列表中
作者简介:张跃东(1972一),男,江苏启东人,江苏省南京工程高等职业学校讲师。
维普资讯
50 南京工业职业技术学院学报 第8卷第2期
2.2通用字段查询模块表单设计
<input type=”button”Name=”search
ok”Value=”查
—
根据目前网页中较传统的查询风格,本文将通用条件查
询”onClick=”getVal()”>
询模块的界面设计成如图2所示形式。
.--_.--.__--・----.__
鳓>>I
J
--_・_・___--_--_一
<<<嚣蟓I
图2通用查询表单
该表单的主要代码及功能说明如下:
(1)查询字段下拉列表可以通过代码<%Call Search—
Field()%>调用SearchField()过程,实现动态获取表的字段
名称并在列表中显示。
(2)查询条件可以采用以下代码,提供各种关系运
算符。
<select Name:”Condition”style:”font—size:12px”>
<oph’on Value=”:”>等于</option>
<opti on Value:”>”>大于</option>
<optio n Value=”>=”>大于等于</option>
<opt’ton Value:”&It:”>小于</option>
<opti on Value=”&It;=”>小于等于</option>
<oph on Value=”≪>”>不等于</option>
<opti on Value:”NULL”>为空</option>
<oph‘on Value=”NOT NULL”>不为空</option>
<oph on Value:”LIKE”>匹配</option>
</select>
(3)条件值的输入要注意数据类型。
(4)关系运算符只需要“与”和“或”2种运算。
<select Name=”Relation”style=”font—size:12px”>・
<option Value=”and”>并且</option>
<option Value:”or”>或者</option>
</select>
(5)“添加”按钮通过调用AddSe()函数,把条件查询语
句添加到<select>查询列表框。
<input type=”button”Name=”AddSql”Value=”添加
>>>”onClick=”AddSe()”>
(6)“删除”按钮通过调用moveSe()函数,把选中的条
件查询语句从<select>查询列表框中删除。
<input type=”button”Name=”delSql”Value:”&lt:
&It;<删除”onClick:”moveSe()”>
(7)“查询”按钮通过调用getVal()函数,取得查询条
件,并提交。
2.3添加条件查询语句
利用javascript定义一个AddSe()函数,把条件查询语句
添加到<select>查询列表框。
function AddSe(){
var val,vat
tmp,Sql,oAdd,TextType;
var Field,Condition,TextVal,Relation;
Field=frm
—
Search.Field.options[frm—Search.Field.se—
lectedIndex].text;
TexlVa1=” ’+frm
—
Search.TextVa1.vatHe+” ;
Condition=frm
—
Search.Condition.options[frm—Search.
Condition.selectedIndex].text;
Relation:frm
—
Search.Relation.options[frm—Search.Rela—
tion.selectedlndex].text;
val
—
Field=frm
—
Search.Field.value;
val=val Field+frm Search.Condition.value+Tex卜
Type+frm
—
Search.Relation.value;
Sql=Field+Condition+TextVal+Relation:
oAdd:document.createElement(”option”)
oAdd.value=val;
oAdd.text:Sql:
frm
—
Search,seSq1.add(oAdd);
}
2.4删除条件查询语句
利用javascfipt定义一个moveSe()函数,把条件查询语
句从<select>查询列表框中删除。
function moveSe(){
for(i:1;i<frm_Search.seSq1.options.1ength;i++){
if(frm~Search.seSq1.options[i].selected){
frm
Search.seSq1.remove(frm—Search.seSq1.selectedln—
dex)
2.5取得查询条件
利用javascript定义一个getVal()函数,取得查询条件,
并提交。
function getVal(){ .
var gettxt,Setable;
gettxt=…:
var path=window.1ocation pathname;//取得页面链接
和文件名
var line=path.1astIndexOf(”/”);//取得最后一个/韵
位置
vra dot=path.indexOf(”.”);//取得第一个:的位置
var Name=path.substring(1ine+1,dot);//取得文件名
varfileName=Name+”.asp”:
fnr(i=1;i<frm_Search.seSq1.options.1ength;i++){
gettxt=gettxt+””+frm
—
Search.seSq1.options[i].
维普资讯
第8卷第2期 张跃东:基于ASP的通用条件查询模块的设计与实现 51
valHe;}
可以获得如图3所示的查询结果。
var valLeng=gettxt.1astlndexOf(””);
gettxt=gettxt.substr(0,valLeng);//去掉条件子句的最
后一个关系运算符
//Setable=frm
Search.Setable.value;
世涛男 1970.10 1994.08 1994.09本科
知云男 1982 04 2005.08 2005 08本科
金生男 1952.叭 1969.03 1976.08本科
图3查询结果页面
window.open(fileName+?gettxt= +gettxt,,_self々;//
向当前页面传送查询条件子句
frm
Search.getSq1.value=gettxt:
本文通过讲述通用条件查询模块的关键技术及代码,使
读者可以根据实际需要任意设置显示表单,以达到查询的要
求。虽本程序还需要进一步完善,但主要说明ASP的通用条
frm
Search.action=fileName:
—
frm
}
—
Search.submit();
件查询编程方法。相信此方法会给大家一些启发,以达到事
半功倍的效果。
参考文献:
3系统架构设计
整个查询模块分为两部分,服务器端采用Microsoft Win—
dows 2000 Server,数据库服务器使用Microsotf SQI—Server
2000,web服务器采用Microsoft Intemet Information Server。这
三者的有机结合提供了强大的web访问能力和安全控制。
客户端采用Inteacrt Explorer来访问服务器。
[1]易昭湘.专家门诊——AsP开发答疑200问[M].北京:
人民邮电出版社,2005.
[2]杜成龙.ASP.NET实现通用查询方式[J].教育信息化,
2005(7):77—78.
4结束语
根据查询需求在通用查询表单中设置查询条件后提交
[3]柳运昌.基于通用模式的学籍管理系统的开发[J].平顶
山工学院学报,2007(1):26—3O.
Design and Application of General Query Module Based on ASP
ZHANC Yue—dong
(Na ng Engineering Vocational College,Nanjing 211135,China)
Abstract:This paper,based on VBScfipt and JavaScript and exempliifed with the query service of Teaching Administration System,de—
signs and realizes a general query module,which provides an effective approach for the simpliifcation of applied procedure writing.
Key words:ASP;Query;SQL Severr
(责任编辑周 源)
发布者:admin,转转请注明出处:http://www.yc00.com/web/1718902199a2753417.html
评论列表(0条)