难道是内存不足?

coolblue coolblue 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//Delphi5.0 + Sql Server 7.0
//同样的代码如果单独运行则也正常,但如果放在大的程序中则出现如下问题

Var
Session:Array of TSession;
DataBase:Array of TDataBase;
Query:Array of TQuery;
begin
//如果只创建以下的任意两个对象,并进行相应处理,系统正常。
//如果三个对象都创建,则当退出主程序知,系统提示内存地址异常
SetLength(Session,TotalComNum);
SetLength(DataBase,TotalComNum);
SetLength(Query,TotalComNum);
//分别对Session,DataBase,Query进行初始化
for I := 1 to TotalComNum do
begin
//动态创建数据对象
Session[I - 1] := TSession.Create(Application);
Session[I - 1].Name := 'Session' + IntToStr(I);
Session[I - 1].SessionName := 'Ses1' + IntToStr(I);
Session[I - 1].Active := True;

DataBase[I - 1] := TDataBase.Create(Application);
DataBase[I - 1].Name := 'DataBase' + IntToStr(I);
DataBase[I - 1].AliasName := 'gsmphone';
DataBase[I - 1].DatabaseName := 'DB' + IntToStr(I);
DataBase[I - 1].LoginPrompt := False;
DataBase[I - 1].Params.Add('USER NAME=sa');
DataBase[I - 1].SessionName := Session[I - 1].SessionName;
DataBase[I - 1].Connected := True;

Query[I - 1] := TQuery.Create(Application);
Query[I - 1].Name := 'Query' + IntToStr(I);
Query[I - 1].SessionName := Session[I - 1].SessionName;
Query[I - 1].DatabaseName := DataBase[I - 1].DatabaseName;

end;
//其他操作
//.......
//释放对象
Session[I - 1].Destroy;
DataBase[I - 1].Destroy;
Query[I - 1].Destroy;
end;
...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
coolblue
Delphi 5,944 成员 262,941 内容