|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
注重:本文方案适用于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万条的数据表,查询速度异常快速。 欢迎大家实验! 返回类别: 教程 上一教程: XMLHTTP组件在ASP开发中的使用 下一教程: 万能数据库连接程序-2 您可以阅读与"借助组件使用ASP连接INFORMIX全方案"相关的教程: · 在ASP中不借助第三方组件抓取别的站点的页面 · 手把手教你使用VB来创建ASP组件(3) · 手把手教你使用VB来创建ASP组件(7) · 手把手教你使用JAVA来编写ASP组件(4) · 使用组件封装ASP的数据库操作 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |