注意:本文方案适用于asp通过自开发组件连接所有类型的数据库
现在某些企业的数据库用的是informix,多数开发者对这个数据库操作的比较少,
因为当前该公司已经被IBM吃掉,而IBM主推的是其DB2,不多述
使用olddb组件,通过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万条的数据表,查询速度非常迅速。
欢迎大家实验!! --Sonic_qd 2003-10
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 没有查询到任何记录。
最新文章
VB.NET 2005编写定时关
Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速
人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案
查看所有0条评论>>