有用过zeosdbo的吗,我的程序每次读取表后内存一直在涨
李_军 2021-01-06 09:37:43 delphi7和delphi10.2.3都试过,zeosdbo-7.2.4-stable和zeosdbo-7.2.8-stable也都试过
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Activex,
Dialogs, StdCtrls, ZAbstractConnection, ZConnection, ZAbstractRODataset, ZAbstractDataset, ZDataset;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure TestFunc;
public
{ Public declarations }
end;
var
Form1: TForm1;
sQry: TZQuery; //TZQuery
ADOC: TZConnection;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to 1000 do
TestFunc;
end;
procedure TForm1.TestFunc;
begin
try
try
ADOC.LoginPrompt := False;
ADOC.Connected := False;
ADOC.HostName := '192.168.3.50';
ADOC.Port := 3306;
ADOC.Database := 'HZST';
ADOC.User := 'root';
ADOC.Password := '28000066';
ADOC.Protocol := 'mysql-5';
ADOC.ClientCodepage := 'gbk';
ADOC.Connected := True;
sQry.Close;
sQry.SQL.Text := 'select * from Usertable';
sQry.Open;
OutputDebugString(PChar(sQry.FieldByName('username').AsString));
//
except
end;
finally
sQry.Close;
ADOC.Connected := False;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
coinitialize(nil);
ADOC := TZConnection.Create(nil);
ADOC.LoginPrompt := False;
sQry := TZQuery.Create(nil);
sQry.Connection := ADOC;
ADOC.Connected := False;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
sQry.Free;
sQry := nil;
ADOC.Free;
ADOC := Nil;
CoUninitialize;
end;
end.