|
@@ -396,6 +396,7 @@ type
|
|
TCustomBufDataset = class(TDBDataSet)
|
|
TCustomBufDataset = class(TDBDataSet)
|
|
private
|
|
private
|
|
FFileName: string;
|
|
FFileName: string;
|
|
|
|
+ FReadFromFile : boolean;
|
|
FFileStream : TFileStream;
|
|
FFileStream : TFileStream;
|
|
FDatasetReader : TDataPacketReader;
|
|
FDatasetReader : TDataPacketReader;
|
|
FIndexes : array of TBufIndex;
|
|
FIndexes : array of TBufIndex;
|
|
@@ -1061,6 +1062,7 @@ begin
|
|
begin
|
|
begin
|
|
FFileStream := TFileStream.Create(FileName,fmOpenRead);
|
|
FFileStream := TFileStream.Create(FileName,fmOpenRead);
|
|
FDatasetReader := TFpcBinaryDatapacketReader.Create(FFileStream);
|
|
FDatasetReader := TFpcBinaryDatapacketReader.Create(FFileStream);
|
|
|
|
+ FReadFromFile := True;
|
|
end;
|
|
end;
|
|
if assigned(FDatasetReader) then IntLoadFielddefsFromFile;
|
|
if assigned(FDatasetReader) then IntLoadFielddefsFromFile;
|
|
CalcRecordSize;
|
|
CalcRecordSize;
|
|
@@ -1132,6 +1134,7 @@ begin
|
|
SetLength(FFieldBufPositions,0);
|
|
SetLength(FFieldBufPositions,0);
|
|
|
|
|
|
if assigned(FParser) then FreeAndNil(FParser);
|
|
if assigned(FParser) then FreeAndNil(FParser);
|
|
|
|
+ FReadFromFile:=false;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TCustomBufDataset.InternalFirst;
|
|
procedure TCustomBufDataset.InternalFirst;
|
|
@@ -2195,7 +2198,7 @@ end;
|
|
|
|
|
|
function TCustomBufDataset.GetIndexFieldNames: String;
|
|
function TCustomBufDataset.GetIndexFieldNames: String;
|
|
begin
|
|
begin
|
|
- if FCurrentIndex<>FIndexes[1] then
|
|
|
|
|
|
+ if (FIndexesCount=0) or (FCurrentIndex<>FIndexes[1]) then
|
|
result := ''
|
|
result := ''
|
|
else
|
|
else
|
|
result := FCurrentIndex.FieldsName;
|
|
result := FCurrentIndex.FieldsName;
|
|
@@ -2865,7 +2868,7 @@ end;
|
|
|
|
|
|
function TCustomBufDataset.IsReadFromPacket: Boolean;
|
|
function TCustomBufDataset.IsReadFromPacket: Boolean;
|
|
begin
|
|
begin
|
|
- Result := (FDatasetReader<>nil) or (FFileName<>'');
|
|
|
|
|
|
+ Result := (FDatasetReader<>nil) or (FFileName<>'') or FReadFromFile;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TCustomBufDataset.ParseFilter(const AFilter: string);
|
|
procedure TCustomBufDataset.ParseFilter(const AFilter: string);
|