本人利用delphi开发的asp组件封装了对数据库的连接,
有个全局的connection,在onstartpage方法中打开,
在onendpage方法中关闭.
但是在使用过程中过一段时间就会报错:
ora-00020 maximum number of processes(600)
为什么我使用connection.close方法关闭的连接
都没有真的被关闭,导致连接数超过设置的process
呢?
求助!非常着急
有个全局的connection,在onstartpage方法中打开,
在onendpage方法中关闭.
但是在使用过程中过一段时间就会报错:
ora-00020 maximum number of processes(600)
为什么我使用connection.close方法关闭的连接
都没有真的被关闭,导致连接数超过设置的process
呢?
求助!非常着急
ComObj, ActiveX, web_bas_jin_TLB, StdVcl,asptypelibrary_tlb,adodb,variant;type
Tbas_jin = class(TAutoObject, Ibas_jin)
protected
con:olevariant;
svr:Iscriptingcontext;
function ReturnRecordset(sql:widestring): OleVariant; safecall;
procedure Onstartpage(const unk: IUnknown); safecall;
procedure OnEndpage();safecall;
{ Protected declarations }
end;implementationuses ComServ ;procedure Tbas_jin.Onstartpage(const unk: IUnknown);
begin
svr:=unk as iscriptingcontext;
con:=createoleobject("adodb.connection")
con.connectionstring:=".......";
con.connected:=true;
end;
function ReturnRecordset(sql:widestring): OleVariant;
var rs: variant;
begin
rs:=createoleobject("adodb.recordset")
rs.connection:=con;
rs.open(sql,con,1,1,1);
result:=rs;
end;procedure OnEndpage();
begin
svr:=nil;
con.close;
con.free;end; initialization
TAutoObjectFactory.Create(ComServer, Tbas_jin, Class_bas_jin,
ciMultiInstance, tmBoth);
end.
con.free;
con:=nil;
这样试试