如何释放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;
...全文
183 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
老胖的小四 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怎么没有见到你销毁它呢?
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
网络通信/分布式开发
创建于2007-08-02

1572

社区成员

Delphi 网络通信/分布式开发
申请成为版主
帖子事件
创建了帖子
2008-03-23 10:47
社区公告
暂无公告