Selaa lähdekoodia

+ Updates should be cancelled in reverse order
+ Fix for bug #6938

git-svn-id: trunk@3804 -

joost 19 vuotta sitten
vanhempi
commit
d9f2d69061
1 muutettua tiedostoa jossa 4 lisäystä ja 4 poistoa
  1. 4 4
      fcl/db/bufdataset.inc

+ 4 - 4
fcl/db/bufdataset.inc

@@ -432,14 +432,14 @@ begin
 
 
   if Length(FUpdateBuffer) > 0 then
   if Length(FUpdateBuffer) > 0 then
     begin
     begin
-    r := 0;
-    while r < Length(FUpdateBuffer) do with FUpdateBuffer[r] do
+    r := Length(FUpdateBuffer) -1;
+    while r > -1 do with FUpdateBuffer[r] do
       begin
       begin
       if assigned(FUpdateBuffer[r].BookmarkData) then
       if assigned(FUpdateBuffer[r].BookmarkData) then
         begin
         begin
         if UpdateKind = ukModify then
         if UpdateKind = ukModify then
           begin
           begin
-          move(FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer^,BookmarkData^,RecordSize+sizeof(TBufRecLinkItem));
+          move(pchar(OldValuesBuffer+sizeof(TBufRecLinkItem))^,pchar(BookmarkData+sizeof(TBufRecLinkItem))^,RecordSize);
           FreeRecordBuffer(OldValuesBuffer);
           FreeRecordBuffer(OldValuesBuffer);
           end
           end
         else if UpdateKind = ukDelete then
         else if UpdateKind = ukDelete then
@@ -464,7 +464,7 @@ begin
           dec(FBRecordCount);
           dec(FBRecordCount);
           end;
           end;
         end;
         end;
-      inc(r);
+      dec(r)
       end;
       end;
 
 
     SetLength(FUpdateBuffer,0);
     SetLength(FUpdateBuffer,0);