欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP项目中的通用条件查询模块

程序员文章站 2023-08-29 17:06:33
一、提出问题:    在大型的asp项目中,都涉及到了条件查询这一功能。用户要求能够针对特定的字段进行查询。对于有些数据,是从多个表取出来的,因此也要能对多个...
一、提出问题:
    在大型的asp项目中,都涉及到了条件查询这一功能。用户要求能够针对特定的字段进行查询。对于有些数据,是从多个表取出来的,因此也要能对多个表进行查询。
    一般的话,大多数的做法就是每个程序都做一个查询功能,因为每个查询的表都不同,涉及的字段也不同。但是,如果在大型的asp项目中这么做的话,不仅增加了工作量、影响开发进度,而且不能使模块化、代码复用,增加了系统维护难度。因此,我们有必要使条件查询模块化。

二、解决思路:
    我们设计条件查询的功能为:
    1、选择查询字段(字段);
    2、选择查询条件(<、>、=、<=、>=、<>、null、not null、like );
    3、输入条件值;
    4、选择运算关系(or、and);
    5、将查询条件添加到列表框、或从列表框删除。
    详细界面请看下图:


       我们以新闻表(dbnews)为例,假定新闻表包含有标题、时间、内容、发布人。
       在查询时,我们一般都是用如:
      “select * from news where time=2002-05-22 and user=tom”,我们如果能在条件查询中返回“time=2002-05-22 and user=tom”的条件字符串,问题就解决了。但如果是不同的程序、不同的表怎么做呢?这就是看用什么方法来定义查询的字段了。   
       在这里,我们把查询字段作为一个过程写在程序中,在查询模块中调用,这样,查询的字段就是动态的生成了。
       用户选择好了一个查询字段,以及匹配条件,将它添加到<select></select>框中,用户可以继续选择另外的查询条件,然后又把它添加到<select>中,完成了,就点查询按钮。用查询模块生成如:“time=2002-05-22 and user=tom”的语句,这样在程序中就可以调用了。

三、解决方案:
    asp通用条件查询模块的源代码请参看 (四、源代码)。
    1、定义过程
    在调用条件查询模块前,首先要在程序中定义一个searchfield()过程:
sub searchfield()
    response.write "<option value=1title>标题</option>"
    response.write "<option value=1time>时间</option>"
    response.write "<option value=1content>内容</option>"
    response.write "<option value=1user>发布人</option>"
end sub
  其中,value中为字段名称,如果字段为字符型,就在字段名前加1,数字型就加2。如:"1title"。
       注意:如果数据是从多个表中取出来的,如:select * from news,user ;那么value的值就要加上相应的表,如:1news.title。这样就可以从多个表查询数据。

  2、调用条件查询模块:
  <!--#include file="../public/condition_search."-->
       
       3、加入按钮事件:
       加入“条件查询”按钮,并添加  onclick="search_dis(s1)"事件:
       <input type="button" name=consearch onclick="search_dis(s1)">