Hi as we all know x86 application ca allocate max of 2GB RAM. Wa are using several CUBES operating on large amount of data.
The result is "Catastrophic failure" during EXPANDALL procedure in PIVOTGRID here:
in BinaryCube;
procedure CreatePage;
begin
if FPageCount = High(FPages) - 1 then
SetLength(FPages,FPageCount + MANAGER_PAGE_COUNT);
FPages[FPageCount] := new (PBinaryNodePage);
Inc(FPageCount);
end;
begin
if FRecordCount div MANAGER_PAGE_SIZE > FPageCount - 1 then
CreatePage; ---------------- HERE ----------------------------
Page := FPages[FRecordCount div MANAGER_PAGE_SIZE];
Result := @Page.VData[FRecordCount mod MANAGER_PAGE_SIZE];
Inc(FRecordCount);
end;
function TBinaryCube.CreatePage : BinaryCell;
begin
Result := BinaryCell.Create(FDimCount);
Inc(FPageCount);
end;
Is it possible to check this Pagecount before Failure , so we calculete needed memory size. (Page size * Pagecount )
best regards