用Delphi开发ASP分页组件

分页

由于Delphi在开发数据库应用系统中具有的强大的功能和极高的效率,所以笔者开发ASP组件较常用的是Delphi 5.0(当然也可采用Visual Basic或VC++开发ASP组件),Delphi本身在Internet和InternetExpress两个组件面板提供了众多的组件可以直接生成Web页面,但是这些组件都缺少网页中数据显示常见的分页功能。众所周知,ASP是通过建立ADO连接数据库后建立RecordSet对象,然后利用RecordSet的AbsolutePage进行页面定位,而在Delphi 5.0中,已提供了ADO组件封装了Microsoft的ADO库,所以同样具有页面定位功能。下面笔者将分步来开发一个通用的显示分页Web页面的ASP组件。
    
    第一步:新建一个Activex Library,命名为PadoPage,然后再新建一个Active Server Object Class,命名为AdoPage,即建立了一个名为AdoPage的ASP组件,文件命名为Adopage.pas。
    
    第二步:打开Type Library,新建一个方法Get_Page,然后在Get_Page加入一个参数Pconnandsgl,用于传递数据库连接语句和SQL语句,参数选择为BSTR类型。
    
    第三步:新建一个DataModule,放入Adoconnection组件和AdoQuery组件,将Data Module命名为AdoDataModule。由于新建立的组件中的方法Get_Page要从DataModule中取得数据,所以需在Adopage.pas的Uses子句中加入AdoDataModule,然后声明一个数据模块的变量fadodm,同时加入Initialize和Destroy这两个方法,以便在ASP组作中生成数据模块。Adopage.pas具体代码如下所示:
    
    unit Adopage;
    
    interface
    
    uses
    
     ComObj, SysUtils, Classes, ActiveX, AspTlb, Pbasedata_TLB, StdVcl, AdoDataModule;
    
     //将AdoDataModule加入USE子句
    
    type
    
     T Adopage = class(TASPObject, Ibasedata)
    
     private
    
     fadodm:TAdoDataModuleform;
    
     protected
    
     procedure OnEndPage; safecall;
    
     procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
    
     procedure get_page(const pconnandsql: WideString); safecall;
    
     public
    
     procedure initialize;override;
    
     destructor destroy;override;
    
     end;
    
    implementation
    
    uses ComServ,forms;
    
    destructor Tadopage.destroy;
    
    begin
    
     inherited;
    
     fadodm.Destroy;
    
    end;
    
    procedure Tadopage.initialize;
    
    begin
    
     inherited;
    
     fadodm:=tadodmform.Create(forms.application);
    
    end;
    
    第四步:建立通用的分页显示数据的方法get_page,具体代码如下:
    
    procedure Tadopage.get_page(const pconnandsql: WideString);
    
    var i,j,n:integer;
    
    connstr,sqlstr:widestring;
    
    rs:_recordset;
    
    cur_url:widestring;
    
    page_no:integer;
    
    begin
    
    //首先从传递过来的参数中分别取出连接串和SQL语句
    
    pconnandsql:=uppercase(pconnandsql);
    
    i:=pos('CONNSTR',pconnandsql);
    
    j:=pos('SQLSTR',pconnandsql);
    
    if i=0 or j=0 then
    
     begin
    
     response.write('数据库连接串或SQL语句错误!');
    
     abort;

时间: 2024-10-30 13:19:49

用Delphi开发ASP分页组件的相关文章

利用VC++开发ASP图像处理组件(2)

三.COM组件接口设计 前面我们在输入文本后,在程序中创建设备上下文,对输入 的文本进行计算并输出了指定文件名的位图文件,在本设计中,我们使用了以JPEG压缩格式 存储文件的方式以减小网络传输时间,因jpeg压缩方法的论述已超出本文范围,故在此不再 赘述. 为了让其他语言调用此接口,我们以 COM 组件的方式发布此程序,可供 VB,DELPHI,PB,ASP等程序调用,下面给出COM组件的设计方法,一般COM组件的创建及编译超 出本文范围,故不再作解释. 在组件中清加方法: STDMETHOD(

利用VC++开发ASP图像处理组件(1)

一.VC++中的DC环境及GUI有关的各种对象 在Windows中有各种图形用户界面GUI (Graphics User Interface)对象,当我们在进行绘图时就需要利用这些对象.而各种对象都 拥有各种属性,下面首先介绍几种GUI对象和拥有的属性. (一).GUI有关的各种对象 在Windows中有各种图形用户界面GUI(Graphics User Interface)对象,当我们在进 行绘图时就需要利用这些对象.而各种对象都拥有各种属性,下面首先介绍几种GUI对象和拥 有的属性. 字体对

用Delphi 6开发ASP上传组件详解

上传|详解 文件上传是WEB开发中经常要用到的功能,但ASP本身和内置的组件都不支持文件上传功能.网上流传的一些第三方组件虽然能够解决这个问题,但大多是要收费的,更别说Open Source了.本文将详细剖析WEB文件上传的原理,以及一步步指导读者如何用Delphi6开发一个ASP上传组件. 1 Html文件分析 首先我们来看一个html文件源码,文件名是test.htm,功能是提供用户上传的界面: <html> <body> <center> <form nam

ASP.NET分页组件学与用——教学篇

asp.net|分页 ASP.NET分页组件学与用--教学篇 没有人会怀疑分页组件在WEB应用程序中的作用.数据库中的记录数成千上万甚至过亿,如果一股脑儿显示在一页显然毫不现实,这样的程序员也太小儿科了.所以,最好的办法就是分页显示,每页只显示数据库中的一部分记录,可以翻页,也可以输入一个页码翻到指定的页面,这种方式也是当前比较常见的用法. 本文的不同之处在于,我把分页的功能封装在组件中,一方面体现了面向对象的特点,另一方面也方便发布.共享和使用.事先声明,本文不再讲述组件创建的详细过程,如果有

ASP.NET分页组件学与用——使用篇

asp.net|分页 ASP.NET分页组件学与用--使用篇 大家好,这篇文章承启上一篇文章<ASP.NET分页组件学与用--教学篇>. 在<ASP.NET分页组件学与用--教学篇>中,我们讲解了分页组件的整个创建过程,那么在这一篇文章中,我们主要讨论一下如何使用该组件. 请按以下步骤操作: 1. 创建一个WEB应用程序工程. 2. 将上篇文章中生成的组件添加到工具箱中.如果您不知道添加的过程,请参考文章<ASP.NET组件编程step by step> 3. 在默认的

asp.net mvc4 mysql制作简单分页组件(部分视图)_实用技巧

在开始做mysql分页功能组件前,便设定的是要有一定可复用性.先在项目里Views文件夹下右键新建名为_PaginationComponent.cshtml,这里html及css我采用的bootstrap分页组件,这可以参考http://v3.bootcss.com/components/. 先将生成项目效果截图呈上: 这里有需要预先知道的,是mysql分页查询与mssql分页查询实现不同点在于,mysql支持limit语句,limit格式为 limit pageIndex*pageSize,p

第十五篇 常用的ASP ActiveX组件

当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作等等,继上篇介绍了 AD Rotator 组件后,本篇将接着给大家介绍其它一些常用的 ASP ActiveX 组件的使用方法. 最近仍有不少朋友来信问我, ASP 是否只能在 Microsoft IIS 上运行,是否可以在非 NT 平台上运作?本来这个问题我已经回答过很多遍了 : 我只是听说过有某种可以支持的软件,却从没见过.但一些热情的朋友仍然孜孜不

第十五课:常用的 ASP ActiveX 组件

当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作等等,继上篇介绍了 AD Rotator 组件后,本篇将接着给大家介绍其它一些常用的 ASP ActiveX 组件的使用方法. 最近仍有不少朋友来信问我, ASP 是否只能在 Microsoft IIS 上运行,是否可以在非 NT 平台上运作?本来这个问题我已经回答过很多遍了 : 我只是听说过有某种可以支持的软件,却从没见过.但一些热情的朋友仍然孜孜不

ASP教程:第十五篇 常用的 ASP ActiveX 组件

当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作等等,继上篇介绍了 AD Rotator 组件后,本篇将接着给大家介绍其它一些常用的 ASP ActiveX 组件的使用方法. 最近仍有不少朋友来信问我, ASP 是否只能在 Microsoft IIS 上运行,是否可以在非 NT 平台上运作?本来这个问题我已经回答过很多遍了 : 我只是听说过有某种可以支持的软件,却从没见过.但一些热情的朋友仍然孜孜不