设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP

借助组件使用asp连接informix全方案

作者:佚名 出处:网络转载 时间:11-19 点击:

内容载入中...
注意:本文方案适用于ASP通过自开发组件连接所有类型的数据库

现在某些企业的数据库用的是informix,多数开发者对这个数据库操作的比较少,

因为当前该公司已经被IBM吃掉,而IBM主推的是其DB2,不多述

使用oledb组件,通过server.createobject("adodb.connection")建立的连接,连

接都可以成功,但是速度是在满的让人惊慌,尤其数据条数超过2万条的表,即使只

是查询一条,也几乎差不出来,整个ASP主机的效率直线下降,内存占用增加。对

待此问题,我使用delphi写了一个简单的组件。

主要代码如下:
unit main;
{$WARN SYMBOL_PLATFORM OFF}

interface

uses
ActiveX, Mtsobj, Mtx, ComObj, ASPbde_TLB, StdVcl,DB,dbtables,SysUtils;

type
TbdeASP = class(TMtsAutoObject, IbdeASP)
protected
function open(const sqlstr, aliname: WideString): OleVariant;

safecall;
function execute(const sqlstr, connstr: WideString): OleVariant;

safecall;
{ Protected declarations }
end;

implementation

uses ComServ;

function TbdeASP.open(const sqlstr, aliname: WideString): OleVariant;
var
tmpre:variant;
begin
tmpre:=createoleobject('adodb.recordset');
try
tmpre.open(sqlstr,aliname);
except

end;
result:=tmpre;
end;

function TbdeASP.execute(const sqlstr, connstr: WideString): OleVariant;
var
tmpre:variant;
begin
tmpre:=createoleobject('adodb.connection');
try
tmpre.open(connstr);
tmpre.execute(sqlstr);
result:=1;
except
result:=0;
end;

end;


initialization
TAutoObjectFactory.Create(ComServer, TbdeASP, Class_bdeASP,
ciMultiInstance, tmBoth);
end.

本程序中只写了最简单的两个方法 open,execute ,大家可以根据自己的需求添加

其他方法、属性等。

调用方法如下:
ser var=server.createobject("appname.bdeASP")
set rs=var.open("sql语句","数据库连接语句")

rs使用方法与 adodb.recordset对象完全一样,经测试,速度明显加快!!!系统

消耗大量下降,2000万条的数据表,查询速度非常迅速。
收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息