实现动态参数查询

来源:互联网 发布:网络直播的起源 编辑:程序博客网 时间:2024/04/30 12:47
    <!---------------如下是HTML语句--------------->    html>    <body>    <h4><b><i>查询某地的客户信息</i></b></h4>    <form action="/scripts/PQuery_Client_Area.DLL/runquery" method="get">    <!---------------如下用于定义国内客户的地--------------->    <p><select name="mc">    <option value="1">北京市</option>    <option value="2">上海市</option>    <option value="3">天津市</option>    <option value="4">重庆市</option>    <option value="5">内蒙古自治区</option>    <option value="6">山西省</option>    <option value="7">河北省</option>    <option value="8">辽宁省</option>    <option value="9">吉林省</option>    <option value="10">黑龙江省</option>    <option value="11">江苏省</option>    <option value="12">安徽省</option>    <option value="13">山东省</option>    <option value="14">浙江省</option>    <option value="15">江西省</option>    <option value="16">福建省</option>    <option value="17">湖南省</option>    <option value="18">湖北省</option>    <option value="19">河南省</option>    <option value="20">广东省</option>    <option value="21">海南省</option>    <option value="22">广西壮族自治区</option>    <option value="23">贵州省</option>    <option value="24">四川省</option>    <option value="25">云南省</option>    <option value="26">陕西省</option>    <option value="27">甘肃省</option>    <option value="28">宁夏回族自治区</option>    <option value="29">青海省</option>    <option value="30">新疆维吾尔自治区</option>    <option value="31">西藏自治区</option>    </select>    <input type="submit" value="确认"> </p>    </FORM>    </body>    </html>    unit Uquery_Client_Area;    interface    uses      //说明使用系统的单元文件      Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables, DBWeb,      HTTPProd;    type    //如下是Web模块上所包含组件的相关描述    TWebModule1 = class(TWebModule)    KehuQry: TQuery;    //查询客户信息的查询组件    FirstPageProducer: TPageProducer;    //形成网页的页面生成组件    //如下是在网页显示的客户信息内容的字段和数据类型    KehuQryBDEDesigner: TSmallintField;    KehuQryBDEDesigner2: TStringField;    KehuQryBDEDesigner3: TStringField;    KehuQryBDEDesigner4: TStringField;    KehuQryBDEDesigner5: TStringField;    KehuQryBDEDesigner6: TStringField;    KehuQryBDEDesigner7: TStringField;    procedure WebModule1RootAction(Sender: TObject; Request: TWebRequest;      Response: TWebResponse; var Handled: Boolean);    //定义缺省动作项的事件处理过程    procedure WebModule1QueryKehuAction(Sender: TObject;      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);      //定义查询动作项的事件处理过程    private      { Private declarations }    public      { Public declarations }    end;    var    WebModule1: TWebModule1;    implementation    {$R *.DFM}    procedure TWebModule1.WebModule1QueryKehuAction(Sender: TObject;    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);    //查询动作项的事件处理过程,它根据用户选择的地区作为查询参数,然后形成响应用户的Web页面。    var      i,j,k:integer;      string1,str1,str3:string;    begin      KehuQry.close;      KehuQry.sql.clear;      //由于采用动态查询,其SQL语句必须动态产生,所以先清楚原有的SQL语句      string1:=Request.Query;      j:=length(Request.Query);      //获取Web客户请求参数长度      i:=pos('=',Request.Query);      //确定“=”在请求参数中的位置      str1:=copy(Request.Query,i+1,j-i);      //获取“=”号右边的内容,即地区编号      k:=StrToInt(str1);      //将Web客户选择省、市、自治区的序号转换为数值类型,并作为查询的参数      //如下各省市自治区的排序不一定准确,且不包括特别行政区,只是个示例      case k of        //根据用户选择的序号,产生相应的省市、自治区名称,作为动态查询参数的值        1:str3:='北京市';        2:str3:='上海市';        3:str3:='天津市';        4:str3:='重庆市';        5:str3:='内蒙古自治区';        6:str3:='山西省';        7:str3:='河北省';        8:str3:='辽宁省';        9:str3:='吉林省';        10:str3:='黑龙江省';        11:str3:='江苏省';        12:str3:='安徽省';        13:str3:='山东省';        14:str3:='浙江省';        15:str3:='江西省';        16:str3:='福建省';        17:str3:='湖南省';        18:str3:='湖北省';        19:str3:='河南省';        20:str3:='广东省';        21:str3:='海南省';        22:str3:='广西壮族自治区';        23:str3:='贵州省';        24:str3:='四川省';        25:str3:='云南省';        26:str3:='陕西省';        27:str3:='甘肃省';        28:str3:='宁夏回族自治区';        29:str3:='青海省';        30:str3:='新疆维吾尔自治区';        31:str3:='西藏自治区';      end;      KehuQry.sql.add('select 客户号,工作省市,公司名称,联系人,职务,移动电话,通信地址 from kehu where 工作省市=:mc');      {重新生成查询组件的SQL语句,其中Request.Query是用户在主页中输入的客户所在的地区,这样就可以根据用户的选择,实现不同条件的数据库查询}      KehuQry.Params[0].Asstring:=str3;      {将用户确定的省、市、自治区作为条件,查出其相关地区的客户,即为查询参数赋值。}      Response.content:='<HTML><HEAD><TITLE>客户查询</TITLE></HEAD><BODY>'#13+'<H3 ALIGN="CENTER"><FONT COLOR="#97694F">查询所在区域的客户名单</FONT></H3>'#13+'<table border>'#13;      //产生Web表格和标题Response.content:=Response.content+'<TR BgColor="White"><TH>客户号</TH><TH>地  域</TH><TH>公司名称</TH><TH>联系人</TH><TH>职务</TH><TH>移动电话</TH><TH>通信地址</TH></TR>';      //指定Web表格每列的标题      KehuQry.Open;      //查询满足用户指定地区的客户      KehuQry.First;      while not KehuQry.EOF do      //本循环填写Web表格的内容,每次填写一行,直至所有记录填写完成      begin        Response.content:=Response.content+Format('<tr><td>%d</td><td>%s</td>        <td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>'#13,        [KehuQryBDEDesigner.AsInteger,KehuQryBDEDesigner2.AsString,        KehuQryBDEDesigner3.AsString,KehuQryBDEDesigner4.AsString,        KehuQryBDEDesigner5.AsString,KehuQryBDEDesigner6.AsString,        KehuQryBDEDesigner7.AsString]);        //填写Web表格每一列的内容,一次填写一行        KehuQry.Next;        //获取下一个记录      end;      Response.content:=Response.content+'</table></BODY></HTML>'#13;      //形成作为HTTP响应消息的内容,并赋给TWebResponse对象的Content属性    end;    procedure TWebModule1.WebModule1RootAction(Sender: TObject;    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);    //缺省动作项的事件处理过程    begin       Response.content:=FirstPageProducer.content;       //第一个动作项用于产生Web客户主页,供用户选择地区       //在用户选择后,指向第二个动作项,完成客户信息的查询    end;    end.
原创粉丝点击