使用CheckMem检查时就发现有一个内存泄露?没有遇到过啊,你的代码呢?发上来看看?ADODB本身是相对成熟的控件了。

解决方案 »

  1.   

    是不是ADODB造成的内存泄漏呢
      

  2.   

    把源程序贴上,大家看看。非常简单的程序呀。
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ADODB;type
      TForm2 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}end.
    program Project2;uses
      CheckMem in 'CheckMem.pas',
      Forms,
      Unit1 in 'Unit1.pas' {Form2};{$R *.res}begin
      Application.Initialize;
      Application.MainFormOnTaskbar := True;
      Application.CreateForm(TForm2, Form2);
      Application.Run;
    end.
    不加ADODB时,运行后CheckMem未检测到泄露,加上ADODB后, 不加任何代码,运行后CheckMem就会提示:
    ===== Project2.exe,2009-12-7 16:44:52 =====     可用地址空间 : 1280 KB(1310720 Byte)
           未提交部分 : 0 KB(0 Byte)
           已提交部分 : 1280 KB(1310720 Byte)
             空闲部分 : 1277 KB(1307856 Byte)
           已分配部分 : 2 KB(2460 Byte)
     全部小空闲内存块 : 285 KB(292048 Byte)
     全部大空闲内存块 : 251 KB(257664 Byte)
       其它未用内存块 : 740 KB(758144 Byte)
       内存管理器消耗 : 0 KB(404 Byte)
         地址空间载入 : 0%当前出现 1 处内存漏洞 :
       0) 0000000000E8B270 - 15250000($E8B250)字节 - 不是对象
      

  3.   

    我也遇到了这种情况,最终发现,新建一个工程,什么都不做,只要是加上adodb单元,最终都会报内存泄露
         可用地址空间 : 1024 KB(1048576 Byte)
           未提交部分 : 1008 KB(1032192 Byte)
           已提交部分 : 16 KB(16384 Byte)
             空闲部分 : 13 KB(13996 Byte)
           已分配部分 : 2 KB(2056 Byte)
     全部小空闲内存块 : 0 KB(248 Byte)
     全部大空闲内存块 : 5 KB(5820 Byte)
       其它未用内存块 : 7 KB(7928 Byte)
       内存管理器消耗 : 0 KB(332 Byte)
         地址空间载入 : 0%当前出现 1 处内存漏洞 :
       0) 0000000000A52004 -  135($0087)字节 - 不是对象