StringA := '';
LenA := 0;
MemLen := 10*1024;
Setlength(StringA, MemoLen);
While not Query1.Eof do
begin
StringB := Query1.Fieldbyname('AField').AsStrimg;
LenB := Length(StringB);
if (LenA+LenB)>MemLen then
begin
MemLen := MemLen+10*1024;
SetLength(StringA, MemLen);
end;
Move(StringB[1], StringA[LenA+1], lenB);
Inc(LenA, LenB);
Query1.next;
end;
SetLength(StringA,LenA);
LenA := 0;
MemLen := 10*1024;
Setlength(StringA, MemoLen);
While not Query1.Eof do
begin
StringB := Query1.Fieldbyname('AField').AsStrimg;
LenB := Length(StringB);
if (LenA+LenB)>MemLen then
begin
MemLen := MemLen+10*1024;
SetLength(StringA, MemLen);
end;
Move(StringB[1], StringA[LenA+1], lenB);
Inc(LenA, LenB);
Query1.next;
end;
SetLength(StringA,LenA);