实现动态参数查询

    <!---------------如下是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.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值