mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-03 14:31:07 +02:00
fcl-db: sdfdataset: RecNo should return nonzero value for State=dsEdit if there is valid record; Compatible with other datasets + test
git-svn-id: trunk@30503 -
This commit is contained in:
parent
9079227c56
commit
0dd93f2384
@ -507,11 +507,11 @@ end;
|
||||
|
||||
function TFixedFormatDataSet.GetRecNo: Longint;
|
||||
var
|
||||
BufPtr: TRecordBuffer;
|
||||
RecBuf: TRecordBuffer;
|
||||
begin
|
||||
Result := 0;
|
||||
if GetActiveRecBuf(BufPtr) and Not (State in dsEditModes) then
|
||||
Result := PRecInfo(BufPtr + FRecInfoOfs)^.RecordNumber;
|
||||
if GetActiveRecBuf(RecBuf) and (State <> dsInsert) then
|
||||
Result := PRecInfo(RecBuf + FRecInfoOfs)^.RecordNumber;
|
||||
end;
|
||||
|
||||
procedure TFixedFormatDataSet.SetRecNo(Value: Integer);
|
||||
|
@ -553,9 +553,14 @@ begin
|
||||
CheckEquals(1,RecordCount);
|
||||
|
||||
append;
|
||||
FieldByName('id').AsInteger := 1;
|
||||
FieldByName('id').AsInteger := 2;
|
||||
CheckEquals(0,RecNo,'RecNo after 3rd Append');
|
||||
CheckEquals(1,RecordCount);
|
||||
post;
|
||||
|
||||
edit;
|
||||
CheckEquals(2,RecNo,'RecNo after Edit');
|
||||
CheckEquals(2,RecordCount);
|
||||
|
||||
Close;
|
||||
|
||||
@ -756,12 +761,12 @@ begin
|
||||
CheckEquals(1,FieldByName('id').AsInteger);
|
||||
|
||||
next;
|
||||
delete;
|
||||
delete; // id=2
|
||||
|
||||
GotoBookmark(BM2);
|
||||
CheckEquals(3,FieldByName('id').AsInteger,'After #2 deleted');
|
||||
|
||||
delete;delete;
|
||||
delete;delete; // id=3,4
|
||||
|
||||
GotoBookmark(BM3);
|
||||
CheckEquals(6,FieldByName('id').AsInteger);
|
||||
|
Loading…
Reference in New Issue
Block a user