delphi 如何防止TDataSet.Next泄漏内存?

eqoofvh9  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(138)

我正在使用一个TDataSet,它需要定位到当前记录。然而,每次我执行TDataSet.Next()时,下一个记录都会被加载到内存中,并且永远不会被释放。但是再次转到该记录将重新加载它,从而导致应用程序中相当大的内存泄漏。我如何防止这种行为?
谢谢!

r1zk6ea1

r1zk6ea11#

你怎么知道“记忆永远不会被释放”?
TDataset使用内部缓冲区来存储“当前”记录的值。滚动数据集时,将重用此缓冲区。关闭数据集时将释放此缓冲区。不存在为每个加载的记录分配内存这类操作。
TDataset的其他实现可能使用不同的缓冲模式,这可能导致内存泄漏,但标准TDatatset不会。

相关问题