mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 18:09:30 +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;
|
||||
FreeFieldBuffers;
|
||||
ClearBuffers;
|
||||
SetBufListSize(-1);
|
||||
SetBufListSize(0);
|
||||
SetState(dsInactive);
|
||||
InternalClose;
|
||||
DoAfterClose;
|
||||
@ -902,6 +902,7 @@ Procedure TDataset.SetBufListSize(Value: Longint);
|
||||
Var I : longint;
|
||||
|
||||
begin
|
||||
if Value = 0 then Value := -1;
|
||||
{$ifdef dsdebug}
|
||||
Writeln ('SetBufListSize: ',Value);
|
||||
{$endif}
|
||||
@ -965,10 +966,10 @@ begin
|
||||
else
|
||||
ReAllocMem(FBuffers,(Value+1)*SizeOf(Pchar));
|
||||
end;
|
||||
if FRecordcount > Value then FRecordcount := Value;
|
||||
end;
|
||||
If Value=-1 then
|
||||
Value:=0;
|
||||
if FRecordcount > Value then FRecordcount := Value;
|
||||
FBufferCount:=Value;
|
||||
{$ifdef dsdebug}
|
||||
Writeln (' SetBufListSize: Final FBufferCount=',FBufferCount);
|
||||
|
@ -56,6 +56,7 @@ type
|
||||
procedure TestDataEventsResync;
|
||||
procedure TestBug7007;
|
||||
procedure TestBug6893;
|
||||
procedure TestRecordcountAfterReopen; // partly bug 8228
|
||||
procedure TestdeFieldListChange;
|
||||
procedure TestLastAppendCancel; // bug 5058
|
||||
procedure TestRecNo; // bug 5061
|
||||
@ -477,6 +478,32 @@ begin
|
||||
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;
|
||||
var tel : byte;
|
||||
begin
|
||||
|
Loading…
Reference in New Issue
Block a user