|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;分页因为Delphi在开辟数据库使用体系中具有的壮大的功效和极高的效力,以是笔者开辟ASP组件较经常使用的是Delphi5.0(固然也可接纳VisualBasic或VC++开辟ASP组件),Delphi自己在Internet和InternetExpress两个组件面板供应了浩瀚的组件能够间接天生Web页面,可是这些组件都短少网页中数据显现罕见的分页功效。尽人皆知,ASP是经由过程创建ADO毗连数据库后创建RecordSet工具,然后使用RecordSet的AbsolutePage举行页面定位,而在Delphi5.0中,已供应了ADO组件封装了Microsoft的ADO库,以是一样具有页面定位功效。上面笔者将分步来开辟一个通用的显现分页Web页面的ASP组件。
第一步:新建一个ActivexLibrary,定名为PadoPage,然后再新建一个ActiveServerObjectClass,定名为AdoPage,即创建了一个名为AdoPage的ASP组件,文件定名为Adopage.pas。
第二步:翻开TypeLibrary,新建一个办法Get_Page,然后在Get_Page到场一个参数Pconnandsgl,用于传送数据库毗连语句和SQL语句,参数选择为BSTR范例。
第三步:新建一个DataModule,放进Adoconnection组件和AdoQuery组件,将DataModule定名为AdoDataModule。因为新创建的组件中的办法Get_Page要从DataModule中获得数据,以是需在Adopage.pas的Uses子句中到场AdoDataModule,然后声明一个数据模块的变量fadodm,同时到场Initialize和Destroy这两个办法,以便在ASP组作中天生数据模块。Adopage.pas详细代码以下所示:
unitAdopage;
interface
uses
ComObj,SysUtils,Classes,ActiveX,AspTlb,Pbasedata_TLB,StdVcl,AdoDataModule;
//将AdoDataModule到场USE子句
type
TAdopage=class(TASPObject,Ibasedata)
private
fadodm:TAdoDataModuleform;
protected
procedureOnEndPage;safecall;
procedureOnStartPage(constAScriptingContext:IUnknown);safecall;
procedureget_page(constpconnandsql:WideString);safecall;
public
procedureinitialize;override;
destructordestroy;override;
end;
implementation
usesComServ,forms;
destructorTadopage.destroy;
begin
inherited;
fadodm.Destroy;
end;
procedureTadopage.initialize;
begin
inherited;
fadodm:=tadodmform.Create(forms.application);
end;
第四步:创建通用的分页显现数据的办法get_page,详细代码以下:
procedureTadopage.get_page(constpconnandsql:WideString);
vari,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);
ifi=0orj=0then
begin
response.write(数据库毗连串或SQL语句毛病!);
abort;
</p>ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。 |
|