mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 05:29:22 +02:00
* Merging revisions r48711 from trunk:
------------------------------------------------------------------------ r48711 | michael | 2021-02-18 16:10:05 +0100 (Thu, 18 Feb 2021) | 1 line * Fix from mattias Gartner for issue ID #38509, correctly rest index on close/reopen ------------------------------------------------------------------------ git-svn-id: branches/fixes_3_2@49304 -
This commit is contained in:
parent
0fc1640e1d
commit
08aeecc05d
@ -1449,6 +1449,7 @@ var
|
|||||||
i,r : integer;
|
i,r : integer;
|
||||||
iGetResult : TGetResult;
|
iGetResult : TGetResult;
|
||||||
pc : TRecordBuffer;
|
pc : TRecordBuffer;
|
||||||
|
CurBufIndex: TBufDatasetIndex;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
FOpen:=False;
|
FOpen:=False;
|
||||||
@ -1498,10 +1499,17 @@ begin
|
|||||||
if FAutoIncValue>-1 then FAutoIncValue:=1;
|
if FAutoIncValue>-1 then FAutoIncValue:=1;
|
||||||
if assigned(FParser) then FreeAndNil(FParser);
|
if assigned(FParser) then FreeAndNil(FParser);
|
||||||
For I:=FIndexes.Count-1 downto 0 do
|
For I:=FIndexes.Count-1 downto 0 do
|
||||||
if (BufIndexDefs[i].IndexType in [itDefault,itCustom]) or (BufIndexDefs[i].DiscardOnClose) then
|
begin
|
||||||
BufIndexDefs[i].Free
|
CurBufIndex:=BufIndexDefs[i];
|
||||||
|
if (CurBufIndex.IndexType in [itDefault,itCustom]) or (CurBufIndex.DiscardOnClose) then
|
||||||
|
begin
|
||||||
|
if FCurrentIndexDef=CurBufIndex then
|
||||||
|
FCurrentIndexDef:=nil;
|
||||||
|
CurBufIndex.Free;
|
||||||
|
end
|
||||||
else
|
else
|
||||||
FreeAndNil(BufIndexDefs[i].FBufferIndex);
|
FreeAndNil(CurBufIndex.FBufferIndex);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCustomBufDataset.InternalFirst;
|
procedure TCustomBufDataset.InternalFirst;
|
||||||
@ -3058,16 +3066,18 @@ function TCustomBufDataset.GetIndexFieldNames: String;
|
|||||||
var
|
var
|
||||||
i, p: integer;
|
i, p: integer;
|
||||||
s: string;
|
s: string;
|
||||||
|
IndexBuf: TBufIndex;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result := FIndexFieldNames;
|
Result := FIndexFieldNames;
|
||||||
if (CurrentIndexBuf=Nil) then
|
IndexBuf:=CurrentIndexBuf;
|
||||||
|
if (IndexBuf=Nil) then
|
||||||
Exit;
|
Exit;
|
||||||
Result:='';
|
Result:='';
|
||||||
for i := 1 to WordCount(CurrentIndexBuf.FieldsName, [Limiter]) do
|
for i := 1 to WordCount(IndexBuf.FieldsName, [Limiter]) do
|
||||||
begin
|
begin
|
||||||
s := ExtractDelimited(i, CurrentIndexBuf.FieldsName, [Limiter]);
|
s := ExtractDelimited(i, IndexBuf.FieldsName, [Limiter]);
|
||||||
p := Pos(s, CurrentIndexBuf.DescFields);
|
p := Pos(s, IndexBuf.DescFields);
|
||||||
if p>0 then
|
if p>0 then
|
||||||
s := s + Desc;
|
s := s + Desc;
|
||||||
Result := Result + Limiter + s;
|
Result := Result + Limiter + s;
|
||||||
|
Loading…
Reference in New Issue
Block a user