B
Blade
Unregistered / Unconfirmed
GUEST, unregistred user!
需要为第三方程序从SQL Server中提取数据到Foxpro表中供使用。
使用Timer进行每分钟数据的刷新,数据导出使用TBatchMove,结果发现程序
内存占用越来越大,两三天后报虚拟内存不足。是不是TBatchMove存在内存泄漏问题?(用TBatchMove编了一个简单的小程序,也存在这样的情况,怀疑是
构件的问题)
procedure TForm1.TimerTimer(Sender: TObject);
begin
Try
with dbsSource do
Try
if not Connected then Connected := True;
Except
Exit;
end;
with qrySource do
begin
Close;
SQL.Clear;
SQL.Add('select * from Test');
Try
Open;
Except
Exit;
end;
end;
if tableDest.Active then tableDest.Close;
tableDest.TableName := 'test.dbf';
tableDest.TableType := ttFoxPro;
Try
BatchMove1.Execute;
Except
Exit;
end;
//关闭打开的数据集;
finally
tableDest.Close;
qrySource.Close;
dbsSource.Close;
end;
end;
使用Timer进行每分钟数据的刷新,数据导出使用TBatchMove,结果发现程序
内存占用越来越大,两三天后报虚拟内存不足。是不是TBatchMove存在内存泄漏问题?(用TBatchMove编了一个简单的小程序,也存在这样的情况,怀疑是
构件的问题)
procedure TForm1.TimerTimer(Sender: TObject);
begin
Try
with dbsSource do
Try
if not Connected then Connected := True;
Except
Exit;
end;
with qrySource do
begin
Close;
SQL.Clear;
SQL.Add('select * from Test');
Try
Open;
Except
Exit;
end;
end;
if tableDest.Active then tableDest.Close;
tableDest.TableName := 'test.dbf';
tableDest.TableType := ttFoxPro;
Try
BatchMove1.Execute;
Except
Exit;
end;
//关闭打开的数据集;
finally
tableDest.Close;
qrySource.Close;
dbsSource.Close;
end;
end;