mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 17:09:16 +02:00
* Tdataset.SetBufListSize(0) should clear the buffer
* A closed dataset should have FRecordcound set to 0 (+added test) * Fix for bug #8228 git-svn-id: trunk@6256 -
This commit is contained in:
parent
87b2630684
commit
31636e3887
@ -411,7 +411,7 @@ begin
|
|||||||
DoBeforeClose;
|
DoBeforeClose;
|
||||||
FreeFieldBuffers;
|
FreeFieldBuffers;
|
||||||
ClearBuffers;
|
ClearBuffers;
|
||||||
SetBufListSize(-1);
|
SetBufListSize(0);
|
||||||
SetState(dsInactive);
|
SetState(dsInactive);
|
||||||
InternalClose;
|
InternalClose;
|
||||||
DoAfterClose;
|
DoAfterClose;
|
||||||
@ -902,6 +902,7 @@ Procedure TDataset.SetBufListSize(Value: Longint);
|
|||||||
Var I : longint;
|
Var I : longint;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
if Value = 0 then Value := -1;
|
||||||
{$ifdef dsdebug}
|
{$ifdef dsdebug}
|
||||||
Writeln ('SetBufListSize: ',Value);
|
Writeln ('SetBufListSize: ',Value);
|
||||||
{$endif}
|
{$endif}
|
||||||
@ -965,10 +966,10 @@ begin
|
|||||||
else
|
else
|
||||||
ReAllocMem(FBuffers,(Value+1)*SizeOf(Pchar));
|
ReAllocMem(FBuffers,(Value+1)*SizeOf(Pchar));
|
||||||
end;
|
end;
|
||||||
if FRecordcount > Value then FRecordcount := Value;
|
|
||||||
end;
|
end;
|
||||||
If Value=-1 then
|
If Value=-1 then
|
||||||
Value:=0;
|
Value:=0;
|
||||||
|
if FRecordcount > Value then FRecordcount := Value;
|
||||||
FBufferCount:=Value;
|
FBufferCount:=Value;
|
||||||
{$ifdef dsdebug}
|
{$ifdef dsdebug}
|
||||||
Writeln (' SetBufListSize: Final FBufferCount=',FBufferCount);
|
Writeln (' SetBufListSize: Final FBufferCount=',FBufferCount);
|
||||||
|
@ -56,6 +56,7 @@ type
|
|||||||
procedure TestDataEventsResync;
|
procedure TestDataEventsResync;
|
||||||
procedure TestBug7007;
|
procedure TestBug7007;
|
||||||
procedure TestBug6893;
|
procedure TestBug6893;
|
||||||
|
procedure TestRecordcountAfterReopen; // partly bug 8228
|
||||||
procedure TestdeFieldListChange;
|
procedure TestdeFieldListChange;
|
||||||
procedure TestLastAppendCancel; // bug 5058
|
procedure TestLastAppendCancel; // bug 5058
|
||||||
procedure TestRecNo; // bug 5061
|
procedure TestRecNo; // bug 5061
|
||||||
@ -477,6 +478,32 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TTestDBBasics.TestRecordcountAfterReopen;
|
||||||
|
var
|
||||||
|
datalink1: tdatalink;
|
||||||
|
datasource1: tdatasource;
|
||||||
|
query1: TDataSet;
|
||||||
|
|
||||||
|
begin
|
||||||
|
query1:= DBConnector.GetNDataset(11);
|
||||||
|
datalink1:= TDataLink.create;
|
||||||
|
datasource1:= tdatasource.create(nil);
|
||||||
|
try
|
||||||
|
datalink1.datasource:= datasource1;
|
||||||
|
datasource1.dataset:= query1;
|
||||||
|
|
||||||
|
query1.active := true;
|
||||||
|
query1.active := False;
|
||||||
|
AssertEquals(0, THackDataLink(datalink1).RecordCount);
|
||||||
|
query1.active := true;
|
||||||
|
AssertTrue(THackDataLink(datalink1).RecordCount>0);
|
||||||
|
query1.active := false;
|
||||||
|
finally
|
||||||
|
datalink1.free;
|
||||||
|
datasource1.free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TTestDBBasics.TestStringFilter;
|
procedure TTestDBBasics.TestStringFilter;
|
||||||
var tel : byte;
|
var tel : byte;
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user