mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-19 13:09:17 +02:00
+ reverted wrongly applied revision 4244
git-svn-id: trunk@4311 -
This commit is contained in:
parent
2bda4cf866
commit
df9b913efe
@ -79,7 +79,6 @@ procedure TBufDataset.InternalClose;
|
|||||||
var pc : pchar;
|
var pc : pchar;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if fopen then begin
|
|
||||||
FOpen:=False;
|
FOpen:=False;
|
||||||
FCurrentRecBuf := FFirstRecBuf;
|
FCurrentRecBuf := FFirstRecBuf;
|
||||||
SetLength(FUpdateBuffer,0);
|
SetLength(FUpdateBuffer,0);
|
||||||
@ -90,7 +89,6 @@ begin
|
|||||||
FreeRecordBuffer(pc);
|
FreeRecordBuffer(pc);
|
||||||
end;
|
end;
|
||||||
SetLength(FFieldBufPositions,0);
|
SetLength(FFieldBufPositions,0);
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBufDataset.InternalFirst;
|
procedure TBufDataset.InternalFirst;
|
||||||
@ -164,12 +162,12 @@ begin
|
|||||||
if Result = grOK then
|
if Result = grOK then
|
||||||
begin
|
begin
|
||||||
|
|
||||||
with PBufBookmark(Buffer + RecordSize)^ do
|
with PBufBookmark(Buffer + FRecordSize)^ do
|
||||||
begin
|
begin
|
||||||
BookmarkData := FCurrentRecBuf;
|
BookmarkData := FCurrentRecBuf;
|
||||||
BookmarkFlag := bfCurrent;
|
BookmarkFlag := bfCurrent;
|
||||||
end;
|
end;
|
||||||
move((pointer(FCurrentRecBuf)+sizeof(TBufRecLinkItem))^,buffer^,RecordSize);
|
move((pointer(FCurrentRecBuf)+sizeof(TBufRecLinkItem))^,buffer^,FRecordSize);
|
||||||
end
|
end
|
||||||
else if (Result = grError) and doCheck then
|
else if (Result = grError) and doCheck then
|
||||||
DatabaseError('No record');
|
DatabaseError('No record');
|
||||||
@ -194,27 +192,27 @@ end;
|
|||||||
|
|
||||||
procedure TBufDataset.InternalSetToRecord(Buffer: PChar);
|
procedure TBufDataset.InternalSetToRecord(Buffer: PChar);
|
||||||
begin
|
begin
|
||||||
FCurrentRecBuf := PBufBookmark(Buffer + RecordSize)^.BookmarkData;
|
FCurrentRecBuf := PBufBookmark(Buffer + FRecordSize)^.BookmarkData;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBufDataset.SetBookmarkData(Buffer: PChar; Data: Pointer);
|
procedure TBufDataset.SetBookmarkData(Buffer: PChar; Data: Pointer);
|
||||||
begin
|
begin
|
||||||
PBufBookmark(Buffer + RecordSize)^.BookmarkData := pointer(Data^);
|
PBufBookmark(Buffer + FRecordSize)^.BookmarkData := pointer(Data^);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBufDataset.SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag);
|
procedure TBufDataset.SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag);
|
||||||
begin
|
begin
|
||||||
PBufBookmark(Buffer + RecordSize)^.BookmarkFlag := Value;
|
PBufBookmark(Buffer + FRecordSize)^.BookmarkFlag := Value;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBufDataset.GetBookmarkData(Buffer: PChar; Data: Pointer);
|
procedure TBufDataset.GetBookmarkData(Buffer: PChar; Data: Pointer);
|
||||||
begin
|
begin
|
||||||
pointer(Data^) := PBufBookmark(Buffer + RecordSize)^.BookmarkData;
|
pointer(Data^) := PBufBookmark(Buffer + FRecordSize)^.BookmarkData;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TBufDataset.GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
|
function TBufDataset.GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
|
||||||
begin
|
begin
|
||||||
Result := PBufBookmark(Buffer + RecordSize)^.BookmarkFlag;
|
Result := PBufBookmark(Buffer + FRecordSize)^.BookmarkFlag;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBufDataset.InternalGotoBookmark(ABookmark: Pointer);
|
procedure TBufDataset.InternalGotoBookmark(ABookmark: Pointer);
|
||||||
@ -445,7 +443,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
if UpdateKind = ukModify then
|
if UpdateKind = ukModify then
|
||||||
begin
|
begin
|
||||||
move(pchar(OldValuesBuffer+sizeof(TBufRecLinkItem))^,pchar(BookmarkData+sizeof(TBufRecLinkItem))^,RecordSize);
|
move(pchar(OldValuesBuffer+sizeof(TBufRecLinkItem))^,pchar(BookmarkData+sizeof(TBufRecLinkItem))^,FRecordSize);
|
||||||
FreeRecordBuffer(OldValuesBuffer);
|
FreeRecordBuffer(OldValuesBuffer);
|
||||||
end
|
end
|
||||||
else if UpdateKind = ukDelete then
|
else if UpdateKind = ukDelete then
|
||||||
@ -602,7 +600,7 @@ begin
|
|||||||
FFirstRecBuf := FCurrentRecBuf;
|
FFirstRecBuf := FCurrentRecBuf;
|
||||||
|
|
||||||
// Link the newly created record buffer to the newly created TDataset record
|
// Link the newly created record buffer to the newly created TDataset record
|
||||||
with PBufBookmark(ActiveBuffer + RecordSize)^ do
|
with PBufBookmark(ActiveBuffer + FRecordSize)^ do
|
||||||
begin
|
begin
|
||||||
BookmarkData := FCurrentRecBuf;
|
BookmarkData := FCurrentRecBuf;
|
||||||
BookmarkFlag := bfInserted;
|
BookmarkFlag := bfInserted;
|
||||||
@ -624,7 +622,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
// Update the oldvalues-buffer
|
// Update the oldvalues-buffer
|
||||||
FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := intAllocRecordBuffer;
|
FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := intAllocRecordBuffer;
|
||||||
move(FCurrentRecBuf^,FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer^,RecordSize+sizeof(TBufRecLinkItem));
|
move(FCurrentRecBuf^,FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer^,FRecordSize+sizeof(TBufRecLinkItem));
|
||||||
FUpdateBuffer[FCurrentUpdateBuffer].UpdateKind := ukModify;
|
FUpdateBuffer[FCurrentUpdateBuffer].UpdateKind := ukModify;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -633,7 +631,7 @@ begin
|
|||||||
|
|
||||||
CurrBuff := pchar(FCurrentRecBuf);
|
CurrBuff := pchar(FCurrentRecBuf);
|
||||||
inc(Currbuff,sizeof(TBufRecLinkItem));
|
inc(Currbuff,sizeof(TBufRecLinkItem));
|
||||||
move(ActiveBuffer^,CurrBuff^,RecordSize);
|
move(ActiveBuffer^,CurrBuff^,FRecordSize);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TBufDataset.CalcRecordSize;
|
procedure TBufDataset.CalcRecordSize;
|
||||||
|
Loading…
Reference in New Issue
Block a user