with uniDAC 5.2.8, I am using the DADump to make a backup. In a table with more than 1000 rows the flow goes to Memdata's, iterates three times in the while loop, and get an invalid pointer into Item. After that I have an AV in the while loop's Item.Order
Code: Select all
procedure SetRecordNo(Value: Longint);
.
.
.
if (Value < Abs(LastOrderedItem.Order + FRecordNoOffset - Value)) and
(Value < Abs(CurrItem.Order + FRecordNoOffset - Value))
then begin
// from first
Item := FirstItem;
ForwardDir := True;
end
.
.
.
while (IntPtr(Item) <> nil) and (Item.Order + FRecordNoOffset <> Value) do
if ForwardDir then begin
if IntPtr(Item.Next) = nil then
Fetch;
Item := Item.Next
end
else
Item := Item.Prev;
.
.