如何释放ActiveX的资源

amaxman 2008-03-23 10:47:26
各位高手,小弟目前做了一个程序,尝试在ASP中使用ActiveX DLL查询数据库MsSQL中的内容,可以正确返回所得数据,但数据库与W2wp所占的内存资源不断增加。
尝试使用AdoConnection.free来释放资源,断开与MsSQL的连接时,发现次DLL只能使用一次。在同一个页面中调用相同的function 会发生错误。

于是小弟使用DataModule,将ADOConnectoin 放置与此Object之上。

请问:如何解决MsSQL与W3wP不断增张的内存资源。如何及时断开与MsSQL的数据库连接。

附加部分代码:
//////////////////////////////////////////////
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer;

{$R *.TLB}
{$R *.RES}

begin
try
DataMod:=TDataMod.Create(nil);
finally

end;
///////////////////////////////////////////////


procedure TCHR.OnStartPage(const AScriptingContext: IUnknown);
var
FScriptingContext : IScriptingContext;
begin
inherited OnStartPage(AScriptingContext);
try
FScriptingContext := AScriptingContext as IScriptingContext;
ConnectionString:=FScriptingContext.Application_['ConnectString'];

if not DataMod.ADOConnection.Connected then
begin
DataMod.ADOConnection.ConnectionString:= ConnectionString;
DataMod.ADOConnection.Open;
end;
except
on E:Exception do
begin
SaveHtmlFileToSystem('TCHR.OnStartPage.Error is '+E.Message);
end;
end;
end;

function TCHR.rstGetBySQL(const SQL: WideString): OleVariant;
var
ADODataSet:TADODataSet;
begin
//InitConnection;
try
ADODataSet:=TADODataSet.Create(nil);
ADODataSet.Connection:=DataMod.ADOConnection;
ADODataSet.CommandType:=cmdText;
ADODataSet.CommandText:=SQL;
ADODataSet.Open;
result:=ADODataSet.Recordset;
except
on E:Exception do
SaveHtmlFileToSystem(e.Message )
end;
end;

procedure TCHR.OnEndPage;
begin
try
inherited OnEndPage;
except
On E:Exception do SaveHtmlFileToSystem(E.Message);
end;
end;
...全文
241 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
老胖的小四 2008-07-29
  • 打赏
  • 举报
回复
[code=Java]
不知道在java中如何去注销卸载activex占用的资源
[code]
amaxman 2008-03-26
  • 打赏
  • 举报
回复
因为我需要从DLL返回一个数据列表。
ydlchina 2008-03-24
  • 打赏
  • 举报
回复
up
hongqi162 2008-03-24
  • 打赏
  • 举报
回复
ADODataSet:=TADODataSet.Create(nil);你每次调用rstGetBySQL的时候都创建一个ADODataSet怎么没有见到你销毁它呢?

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧