实现数据库查询的Web服务器应用程序

    library PGuYuan_query;
uses   //说明工程使用的有关文件,
//注意:使用不同的Delphi版本,所使用文件和数量有差别!!!
      ActiveX,
      ComObj,
      WebBroker,
      ISAPIThreadPool,
      ISAPIApp,
    UGuYuan_query in 'UGuYuan_query.pas' {WebModule1: TWebModule};
    {$R *.RES}
    exports    //指明在本工程中使用的外部过程
      GetExtensionVersion,
      HttpExtensionProc,
      TerminateExtension;
    begin
      Application.Initialize;  //应用初始化
      Application.CreateForm(TWebModule1, WebModule1);
    Application.Run;          //执行应用
    end.

    unit UGuYuan_query;
    interface
    uses   //定义使用的系统单元文件
      Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables, DBWeb,
      DBBdeWeb, HTTPProd;
    type
    TWebModule1 = class(TWebModule)
    Root: TPageProducer;    //页面生成组件
    Query_RenYuan: TQuery;  //查询雇员的查询组件
    RenYuan_QueryTableProducer: TQueryTableProducer;  //查询页面生成组件
    query_Kehu: TTable;     //查询客户信息的表组件
    KeHu_DataSetTableProducer: TDataSetTableProducer;  //客户信息页面生成组件
    {与查询组件相对应的内部字段名}
    Query_RenYuanBDEDesigner2: TStringField;
    Query_RenYuanBDEDesigner5: TStringField;
    Query_RenYuanBDEDesigner6: TStringField;
    Query_RenYuanBDEDesigner8: TStringField;
    Query_RenYuanBDEDesigner11: TDateField;
    Query_RenYuanBDEDesigner12: TStringField;
    query_KehuBDEDesigner2: TStringField;
    query_KehuBDEDesigner3: TStringField;
    query_KehuBDEDesigner5: TStringField;
    query_KehuBDEDesigner6: TStringField;
    query_KehuBDEDesigner8: TStringField;
    query_KehuBDEDesigner11: TStringField;
    Query_RenYuanBDEDesigner: TStringField;
    //动作项的事件处理过程
    procedure WebModule1RootAction(Sender: TObject; Request: TWebRequest;
      Response: TWebResponse; var Handled: Boolean);
    procedure WebModule1QueryGuyuanAction(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    procedure WebModule1KehuTableAction(Sender: TObject;
      Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    procedure WebModuleCreate(Sender: TObject);
    procedure WebModuleDestroy(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
    var
      WebModule1: TWebModule1;
      implementation
      {$R *.DFM}

    procedure TWebModule1.WebModule1RootAction(Sender: TObject;
    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    begin
       response.content:=Root.content;
    { content方法的作用是将页面生成组件Root的HTMLDoc属性中的文本转换为HTML页面,即形成第一个HTML页面。}
    end;

    procedure TWebModule1.WebModule1QueryGuyuanAction(Sender: TObject;
    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    //这是动作项QueryGuyuan的事件处理过程
    begin
       Response.content:=RenYuan_QueryTableProducer.content;
    {查询页面生成组件能够自动从HTTP请求消息中检索URL所附带的参数,如果需要的话,它可将参数传给查询组件的SQL语句。Content方法的作用是调用QueryTableProducer组件Query属性中指出的查询组件,并将查询组件的查询结果赋给TWebResponse对象的Content属性,作为HTTP响应消息的内容。}
    end;

    procedure TWebModule1.WebModule1KehuTableAction(Sender: TObject;
    Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
    //这是动作项KehuTable的事件处理过程
    begin
      Query_Kehu.first;
//表组件的记录指针移到第一个记录上,否则,在第二次浏览时,记录指针已到最后,
//其结果是无法看到表中的内容
Response.content:=KeHu_DataSetTableProducer.content;
//Content方法的作用是引入在DataSetTableProducer 组件DataSet属性中指出的表
/组件的内容,并赋给TWebResponse对象的Content属性,作为HTTP响应消息的内容。
end;

    procedure TWebModule1.WebModuleCreate(Sender: TObject);
    begin
      Query_Kehu.close;
      Query_Kehu.open;
      //当Web模块建立时,打开Kehu表,并使其处于活动状态
      Query_Kehu.first;
    end;

    procedure TWebModule1.WebModuleDestroy(Sender: TObject);
    begin
       Query_Kehu.close;
       //当Web模块撤消时,关闭Kehu表
    end;
    end.



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值