藉助組件使用asp串連informix全方案

來源:互聯網
上載者:User
注意:本文方案適用於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萬條的資料表,查詢速度非常迅速。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。