mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-07 03:06:04 +02:00
fcl-db: bufdataset: formatting (cosmetic, char-case, ordering of methods)
git-svn-id: trunk@26816 -
This commit is contained in:
parent
c83f4c5ddc
commit
58687847db
@ -74,7 +74,7 @@ type
|
|||||||
PBufBookmark = ^TBufBookmark;
|
PBufBookmark = ^TBufBookmark;
|
||||||
TBufBookmark = record
|
TBufBookmark = record
|
||||||
BookmarkData : PBufRecLinkItem;
|
BookmarkData : PBufRecLinkItem;
|
||||||
BookmarkInt : integer;
|
BookmarkInt : integer; // was used by TArrayBufIndex
|
||||||
BookmarkFlag : TBookmarkFlag;
|
BookmarkFlag : TBookmarkFlag;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -473,31 +473,32 @@ type
|
|||||||
FBlobBuffers : array of PBlobBuffer;
|
FBlobBuffers : array of PBlobBuffer;
|
||||||
FUpdateBlobBuffers: array of PBlobBuffer;
|
FUpdateBlobBuffers: array of PBlobBuffer;
|
||||||
|
|
||||||
procedure FetchAll;
|
|
||||||
procedure ProcessFieldsToCompareStruct(const AFields, ADescFields, ACInsFields: TList;
|
procedure ProcessFieldsToCompareStruct(const AFields, ADescFields, ACInsFields: TList;
|
||||||
const AIndexOptions: TIndexOptions; const ALocateOptions: TLocateOptions; out ACompareStruct: TDBCompareStruct);
|
const AIndexOptions: TIndexOptions; const ALocateOptions: TLocateOptions; out ACompareStruct: TDBCompareStruct);
|
||||||
function BufferOffset: integer;
|
function BufferOffset: integer;
|
||||||
function GetIndexDefs : TIndexDefs;
|
|
||||||
function GetCurrentBuffer: TRecordBuffer;
|
|
||||||
procedure CalcRecordSize;
|
|
||||||
function GetIndexFieldNames: String;
|
|
||||||
function GetIndexName: String;
|
|
||||||
function GetBufUniDirectional: boolean;
|
|
||||||
function GetPacketReader(const Format: TDataPacketFormat; const AStream: TStream): TDataPacketReader;
|
|
||||||
function LoadBuffer(Buffer : TRecordBuffer): TGetResult;
|
|
||||||
function GetFieldSize(FieldDef : TFieldDef) : longint;
|
function GetFieldSize(FieldDef : TFieldDef) : longint;
|
||||||
|
procedure CalcRecordSize;
|
||||||
|
function IntAllocRecordBuffer: TRecordBuffer;
|
||||||
|
procedure IntLoadFieldDefsFromFile;
|
||||||
|
procedure IntLoadRecordsFromFile;
|
||||||
|
function GetCurrentBuffer: TRecordBuffer;
|
||||||
|
procedure CurrentRecordToBuffer(Buffer: TRecordBuffer);
|
||||||
|
function LoadBuffer(Buffer : TRecordBuffer): TGetResult;
|
||||||
|
procedure FetchAll;
|
||||||
function GetRecordUpdateBuffer(const ABookmark : TBufBookmark; IncludePrior : boolean = false; AFindNext : boolean = false) : boolean;
|
function GetRecordUpdateBuffer(const ABookmark : TBufBookmark; IncludePrior : boolean = false; AFindNext : boolean = false) : boolean;
|
||||||
function GetRecordUpdateBufferCached(const ABookmark : TBufBookmark; IncludePrior : boolean = false) : boolean;
|
function GetRecordUpdateBufferCached(const ABookmark : TBufBookmark; IncludePrior : boolean = false) : boolean;
|
||||||
function GetActiveRecordUpdateBuffer : boolean;
|
function GetActiveRecordUpdateBuffer : boolean;
|
||||||
|
procedure ParseFilter(const AFilter: string);
|
||||||
|
function GetPacketReader(const Format: TDataPacketFormat; const AStream: TStream): TDataPacketReader;
|
||||||
|
|
||||||
|
function GetIndexDefs : TIndexDefs;
|
||||||
|
function GetIndexFieldNames: String;
|
||||||
|
function GetIndexName: String;
|
||||||
|
function GetBufUniDirectional: boolean;
|
||||||
procedure SetIndexFieldNames(const AValue: String);
|
procedure SetIndexFieldNames(const AValue: String);
|
||||||
procedure SetIndexName(AValue: String);
|
procedure SetIndexName(AValue: String);
|
||||||
procedure SetMaxIndexesCount(const AValue: Integer);
|
procedure SetMaxIndexesCount(const AValue: Integer);
|
||||||
procedure SetPacketRecords(aValue : integer);
|
procedure SetPacketRecords(aValue : integer);
|
||||||
function IntAllocRecordBuffer: TRecordBuffer;
|
|
||||||
procedure ParseFilter(const AFilter: string);
|
|
||||||
procedure IntLoadFielddefsFromFile;
|
|
||||||
procedure IntLoadRecordsFromFile;
|
|
||||||
procedure CurrentRecordToBuffer(Buffer: TRecordBuffer);
|
|
||||||
procedure SetBufUniDirectional(const AValue: boolean);
|
procedure SetBufUniDirectional(const AValue: boolean);
|
||||||
// indexes handling
|
// indexes handling
|
||||||
procedure InitDefaultIndexes;
|
procedure InitDefaultIndexes;
|
||||||
@ -505,9 +506,7 @@ type
|
|||||||
procedure BuildIndexes;
|
procedure BuildIndexes;
|
||||||
procedure RemoveRecordFromIndexes(const ABookmark : TBufBookmark);
|
procedure RemoveRecordFromIndexes(const ABookmark : TBufBookmark);
|
||||||
protected
|
protected
|
||||||
function GetNewBlobBuffer : PBlobBuffer;
|
// abstract & virtual methods of TDataset
|
||||||
function GetNewWriteBlobBuffer : PBlobBuffer;
|
|
||||||
procedure FreeBlobBuffer(var ABlobBuffer: PBlobBuffer);
|
|
||||||
procedure UpdateIndexDefs; override;
|
procedure UpdateIndexDefs; override;
|
||||||
procedure SetRecNo(Value: Longint); override;
|
procedure SetRecNo(Value: Longint); override;
|
||||||
function GetRecNo: Longint; override;
|
function GetRecNo: Longint; override;
|
||||||
@ -521,10 +520,7 @@ type
|
|||||||
procedure DoBeforeClose; override;
|
procedure DoBeforeClose; override;
|
||||||
procedure InternalOpen; override;
|
procedure InternalOpen; override;
|
||||||
procedure InternalClose; override;
|
procedure InternalClose; override;
|
||||||
function getnextpacket : integer;
|
|
||||||
function GetRecordSize: Word; override;
|
function GetRecordSize: Word; override;
|
||||||
procedure InternalAddIndex(const AName, AFields : string; AOptions : TIndexOptions; const ADescFields: string;
|
|
||||||
const ACaseInsFields: string); virtual;
|
|
||||||
procedure InternalPost; override;
|
procedure InternalPost; override;
|
||||||
procedure InternalCancel; Override;
|
procedure InternalCancel; Override;
|
||||||
procedure InternalDelete; override;
|
procedure InternalDelete; override;
|
||||||
@ -544,14 +540,21 @@ type
|
|||||||
procedure SetFiltered(Value: Boolean); override; {virtual;}
|
procedure SetFiltered(Value: Boolean); override; {virtual;}
|
||||||
procedure InternalRefresh; override;
|
procedure InternalRefresh; override;
|
||||||
procedure DataEvent(Event: TDataEvent; Info: Ptrint); override;
|
procedure DataEvent(Event: TDataEvent; Info: Ptrint); override;
|
||||||
|
// virtual or methods, which can be used by descendants
|
||||||
|
function GetNewBlobBuffer : PBlobBuffer;
|
||||||
|
function GetNewWriteBlobBuffer : PBlobBuffer;
|
||||||
|
procedure FreeBlobBuffer(var ABlobBuffer: PBlobBuffer);
|
||||||
|
procedure InternalAddIndex(const AName, AFields : string; AOptions : TIndexOptions; const ADescFields: string;
|
||||||
|
const ACaseInsFields: string); virtual;
|
||||||
procedure BeforeRefreshOpenCursor; virtual;
|
procedure BeforeRefreshOpenCursor; virtual;
|
||||||
procedure DoFilterRecord(out Acceptable: Boolean); virtual;
|
procedure DoFilterRecord(out Acceptable: Boolean); virtual;
|
||||||
procedure SetReadOnly(AValue: Boolean); virtual;
|
procedure SetReadOnly(AValue: Boolean); virtual;
|
||||||
{abstracts, must be overidden by descendents}
|
function IsReadFromPacket : Boolean;
|
||||||
|
function getnextpacket : integer;
|
||||||
|
// abstracts, must be overidden by descendents
|
||||||
function Fetch : boolean; virtual;
|
function Fetch : boolean; virtual;
|
||||||
function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; virtual;
|
function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; virtual;
|
||||||
procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); virtual; abstract;
|
procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); virtual; abstract;
|
||||||
function IsReadFromPacket : Boolean;
|
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
function GetFieldData(Field: TField; Buffer: Pointer;
|
function GetFieldData(Field: TField; Buffer: Pointer;
|
||||||
@ -1605,7 +1608,7 @@ end;
|
|||||||
function TCustomBufDataset.GetRecord(Buffer: TRecordBuffer; GetMode: TGetMode; DoCheck: Boolean): TGetResult;
|
function TCustomBufDataset.GetRecord(Buffer: TRecordBuffer; GetMode: TGetMode; DoCheck: Boolean): TGetResult;
|
||||||
|
|
||||||
var Acceptable : Boolean;
|
var Acceptable : Boolean;
|
||||||
SaveState : TDataSetState;
|
SavedState : TDataSetState;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := grOK;
|
Result := grOK;
|
||||||
@ -1633,17 +1636,17 @@ begin
|
|||||||
if Filtered then
|
if Filtered then
|
||||||
begin
|
begin
|
||||||
FFilterBuffer := Buffer;
|
FFilterBuffer := Buffer;
|
||||||
SaveState := SetTempState(dsFilter);
|
SavedState := SetTempState(dsFilter);
|
||||||
DoFilterRecord(Acceptable);
|
DoFilterRecord(Acceptable);
|
||||||
if (GetMode = gmCurrent) and not Acceptable then
|
if (GetMode = gmCurrent) and not Acceptable then
|
||||||
begin
|
begin
|
||||||
Acceptable := True;
|
Acceptable := True;
|
||||||
Result := grError;
|
Result := grError;
|
||||||
end;
|
end;
|
||||||
RestoreState(SaveState);
|
RestoreState(SavedState);
|
||||||
end;
|
end;
|
||||||
end
|
end
|
||||||
else if (Result = grError) and doCheck then
|
else if (Result = grError) and DoCheck then
|
||||||
DatabaseError('No record');
|
DatabaseError('No record');
|
||||||
until Acceptable;
|
until Acceptable;
|
||||||
end;
|
end;
|
||||||
@ -2550,9 +2553,9 @@ var
|
|||||||
|
|
||||||
begin
|
begin
|
||||||
CheckBrowseMode;
|
CheckBrowseMode;
|
||||||
if value > RecordCount then
|
if Value > RecordCount then
|
||||||
begin
|
begin
|
||||||
repeat until (getnextpacket < FPacketRecords) or (value <= RecordCount) or (FPacketRecords = -1);
|
repeat until (getnextpacket < FPacketRecords) or (Value <= RecordCount) or (FPacketRecords = -1);
|
||||||
if value > RecordCount then
|
if value > RecordCount then
|
||||||
begin
|
begin
|
||||||
DatabaseError(SNoSuchRecord,self);
|
DatabaseError(SNoSuchRecord,self);
|
||||||
@ -2560,22 +2563,22 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
TmpRecBuffer := (FCurrentIndex as TDoubleLinkedBufIndex).FFirstRecBuf;
|
TmpRecBuffer := (FCurrentIndex as TDoubleLinkedBufIndex).FFirstRecBuf;
|
||||||
for recnr := 1 to value-1 do
|
for recnr := 1 to Value-1 do
|
||||||
TmpRecBuffer := TmpRecBuffer[FCurrentIndex.IndNr].next;
|
TmpRecBuffer := TmpRecBuffer[FCurrentIndex.IndNr].next;
|
||||||
GotoBookmark(@TmpRecBuffer);
|
GotoBookmark(@TmpRecBuffer);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCustomBufDataset.GetRecNo: Longint;
|
function TCustomBufDataset.GetRecNo: Longint;
|
||||||
|
|
||||||
Var abuf : TRecordBuffer;
|
Var CurrBuff : TRecordBuffer;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
abuf := GetCurrentBuffer;
|
CurrBuff := GetCurrentBuffer;
|
||||||
// If abuf isn't assigned, the recordset probably isn't opened.
|
// If CurrBuff isn't assigned, the recordset probably isn't opened.
|
||||||
if assigned(abuf) and (FBRecordCount>0) and (State <> dsInsert) then
|
if assigned(CurrBuff) and (FBRecordCount>0) and (State <> dsInsert) then
|
||||||
Result:=FCurrentIndex.GetRecNo(PBufBookmark(abuf+FRecordSize))
|
Result:=FCurrentIndex.GetRecNo(PBufBookmark(CurrBuff+FRecordSize))
|
||||||
else
|
else
|
||||||
result := 0;
|
Result := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TCustomBufDataset.IsCursorOpen: Boolean;
|
function TCustomBufDataset.IsCursorOpen: Boolean;
|
||||||
@ -2819,7 +2822,7 @@ procedure TCustomBufDataset.GetDatasetPacket(AWriter: TDataPacketReader);
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
var ScrollResult : TGetResult;
|
var ScrollResult : TGetResult;
|
||||||
StoreDSState : TDataSetState;
|
SavedState : TDataSetState;
|
||||||
ABookMark : PBufBookmark;
|
ABookMark : PBufBookmark;
|
||||||
ATBookmark : TBufBookmark;
|
ATBookmark : TBufBookmark;
|
||||||
RowState : TRowState;
|
RowState : TRowState;
|
||||||
@ -2831,7 +2834,7 @@ begin
|
|||||||
ABookMark:=@ATBookmark;
|
ABookMark:=@ATBookmark;
|
||||||
FDatasetReader.StoreFieldDefs(FAutoIncValue);
|
FDatasetReader.StoreFieldDefs(FAutoIncValue);
|
||||||
|
|
||||||
StoreDSState:=SetTempState(dsFilter);
|
SavedState:=SetTempState(dsFilter);
|
||||||
ScrollResult:=FCurrentIndex.ScrollFirst;
|
ScrollResult:=FCurrentIndex.ScrollFirst;
|
||||||
while ScrollResult=grOK do
|
while ScrollResult=grOK do
|
||||||
begin
|
begin
|
||||||
@ -2855,7 +2858,7 @@ begin
|
|||||||
FCurrentIndex.StoreSpareRecIntoBookmark(ABookmark);
|
FCurrentIndex.StoreSpareRecIntoBookmark(ABookmark);
|
||||||
HandleUpdateBuffersFromRecord(True,ABookmark^,RowState);
|
HandleUpdateBuffersFromRecord(True,ABookmark^,RowState);
|
||||||
|
|
||||||
RestoreState(StoreDSState);
|
RestoreState(SavedState);
|
||||||
|
|
||||||
FDatasetReader.FinalizeStoreRecords;
|
FDatasetReader.FinalizeStoreRecords;
|
||||||
finally
|
finally
|
||||||
@ -2972,7 +2975,7 @@ end;
|
|||||||
|
|
||||||
procedure TCustomBufDataset.IntLoadRecordsFromFile;
|
procedure TCustomBufDataset.IntLoadRecordsFromFile;
|
||||||
|
|
||||||
var StoreState : TDataSetState;
|
var SavedState : TDataSetState;
|
||||||
AddRecordBuffer : boolean;
|
AddRecordBuffer : boolean;
|
||||||
ARowState : TRowState;
|
ARowState : TRowState;
|
||||||
AUpdOrder : integer;
|
AUpdOrder : integer;
|
||||||
@ -2981,7 +2984,7 @@ var StoreState : TDataSetState;
|
|||||||
begin
|
begin
|
||||||
CheckBiDirectional;
|
CheckBiDirectional;
|
||||||
FDatasetReader.InitLoadRecords;
|
FDatasetReader.InitLoadRecords;
|
||||||
StoreState:=SetTempState(dsFilter);
|
SavedState:=SetTempState(dsFilter);
|
||||||
|
|
||||||
while FDatasetReader.GetCurrentRecord do
|
while FDatasetReader.GetCurrentRecord do
|
||||||
begin
|
begin
|
||||||
@ -3069,7 +3072,7 @@ begin
|
|||||||
FDatasetReader.GotoNextRecord;
|
FDatasetReader.GotoNextRecord;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
RestoreState(StoreState);
|
RestoreState(SavedState);
|
||||||
FIndexes[0].SetToFirstRecord;
|
FIndexes[0].SetToFirstRecord;
|
||||||
FAllPacketsFetched:=True;
|
FAllPacketsFetched:=True;
|
||||||
if assigned(FFileStream) then
|
if assigned(FFileStream) then
|
||||||
@ -3197,7 +3200,7 @@ var CurrLinkItem : PBufRecLinkItem;
|
|||||||
bm : TBufBookmark;
|
bm : TBufBookmark;
|
||||||
SearchFields : TList;
|
SearchFields : TList;
|
||||||
DBCompareStruct : TDBCompareStruct;
|
DBCompareStruct : TDBCompareStruct;
|
||||||
StoreDSState : TDataSetState;
|
SavedState : TDataSetState;
|
||||||
FilterRecord : TRecordBuffer;
|
FilterRecord : TRecordBuffer;
|
||||||
FiltAcceptable : boolean;
|
FiltAcceptable : boolean;
|
||||||
|
|
||||||
@ -3218,7 +3221,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// Set the filter buffer
|
// Set the filter buffer
|
||||||
StoreDSState:=SetTempState(dsFilter);
|
SavedState:=SetTempState(dsFilter);
|
||||||
FFilterBuffer:=FCurrentIndex.SpareBuffer;
|
FFilterBuffer:=FCurrentIndex.SpareBuffer;
|
||||||
SetFieldValues(KeyFields,KeyValues);
|
SetFieldValues(KeyFields,KeyValues);
|
||||||
FilterRecord:=IntAllocRecordBuffer;
|
FilterRecord:=IntAllocRecordBuffer;
|
||||||
@ -3252,7 +3255,7 @@ begin
|
|||||||
getnextpacket;
|
getnextpacket;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
RestoreState(StoreDSState);
|
RestoreState(SavedState);
|
||||||
FreeRecordBuffer(FilterRecord);
|
FreeRecordBuffer(FilterRecord);
|
||||||
|
|
||||||
// If a match is found, jump to the found record
|
// If a match is found, jump to the found record
|
||||||
|
Loading…
Reference in New Issue
Block a user