Ш
Size: a a a
Ш
ED
N
TUniPoolRecQuery = recordюзать так:
strict private
FDBQuery: TUniQuery;
public
class operator Initialize(out ADest: TUniPoolRecQuery);
class operator Finalize(var ADest: TUniPoolRecQuery);
property DBQuery: TUniQuery read FDBQuery write FDBQuery;
end;
{ TUniPoolRecQuery }
class operator TUniPoolRecQuery.Finalize(var ADest: TUniPoolRecQuery);
begin
DBPool.FreeQuery(ADest.FDBQuery)
end;
class operator TUniPoolRecQuery.Initialize(out ADest: TUniPoolRecQuery);
begin
ADest.FDBQuery := DBPool.GetQuery;
end;
var PoolRec: TUniPoolRecQuery;
PoolRec.DBQuery...
try/finally не нужен. при заходе в зону видимости запись инициализируется, при выходе - финализируется, проверил. один раз и то и тоN
DB
KB
DB
var StringListRec: TStringListRec; //запись для поддержки автоматического создания и разрушения стринглиста
var StringList: TStringList := StringListRec.SL; //вытаскиваем стринглист в переменную, что бы не писать with и вообще не
менять код (в случае рефакторинга)
StringList.Add('test'); //всё работает
SB
var StringListRec: TStringListRec; //запись для поддержки автоматического создания и разрушения стринглиста
var StringList: TStringList := StringListRec.SL; //вытаскиваем стринглист в переменную, что бы не писать with и вообще не
менять код (в случае рефакторинга)
StringList.Add('test'); //всё работает
var sl: object of TStringList
GB
var StringListRec: TStringListRec; //запись для поддержки автоматического создания и разрушения стринглиста
var StringList: TStringList := StringListRec.SL; //вытаскиваем стринглист в переменную, что бы не писать with и вообще не
менять код (в случае рефакторинга)
StringList.Add('test'); //всё работает
DB
GB
GB
DB
DB
АВ
var StringListRec: TStringListRec; //запись для поддержки автоматического создания и разрушения стринглиста
var StringList: TStringList := StringListRec.SL; //вытаскиваем стринглист в переменную, что бы не писать with и вообще не
менять код (в случае рефакторинга)
StringList.Add('test'); //всё работает
MS
VA