全部博文(788)
分类:
2008-10-14 16:38:58
关注!
如果客户端的result没有free的话,会产生内存泄漏,即分配给tempquery的内存块没有了引用。
对于class类型的返回值,建议改成过程,使用变参传入。
function TAdoHelper.GetDataSet(sqlstr: string; params: TStrings): TDataSet;
begin
Result := TAdoQuery.Create(nil);
with Result do
begin
Connection:= FConnector;
Close;
SQL.Clear;
SQL.Add(sqlstr);
Prepared;
FillParameters(Result,Params);
Open;
end;
end;
客户端:
AdataSet := MySqlHelper.GetDataSet(SQL_GetUserDataSet);
....
ADataSet.Free; // 这样就干净了。。
恩,楼上说的是对的。这样做,应该是可以的。。