mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-07 10:10:39 +02:00
* Implemented dataset enumerator, suggestion by Sylvio Clecio and Laco (bug ID 27644)
git-svn-id: trunk@30366 -
This commit is contained in:
parent
e2500d5a70
commit
677fcac127
@ -2482,3 +2482,30 @@ end;
|
||||
|
||||
{------------------------------------------------------------------------------}
|
||||
|
||||
operator Enumerator(ADataSet: TDataSet): TDataSetEnumerator;
|
||||
begin
|
||||
Result:=TDataSetEnumerator.Create(ADataSet);
|
||||
end;
|
||||
|
||||
constructor TDataSetEnumerator.Create(ADataSet: TDataSet);
|
||||
begin
|
||||
inherited Create;
|
||||
FDataSet:=ADataSet;
|
||||
FBOF:=True;
|
||||
FDataSet.First;
|
||||
end;
|
||||
|
||||
function TDataSetEnumerator.GetCurrent: TFields;
|
||||
begin
|
||||
Result := FDataSet.Fields;
|
||||
end;
|
||||
|
||||
function TDataSetEnumerator.MoveNext: Boolean;
|
||||
|
||||
begin
|
||||
if FBOF then
|
||||
FBOF:=False
|
||||
else
|
||||
FDataSet.Next;
|
||||
Result:=not FDataSet.EOF;
|
||||
end;
|
||||
|
@ -1713,6 +1713,17 @@ type
|
||||
property OnPostError: TDataSetErrorEvent read FOnPostError write FOnPostError;
|
||||
end;
|
||||
|
||||
TDataSetEnumerator = class
|
||||
private
|
||||
FDataSet: TDataSet;
|
||||
FBOF: Boolean;
|
||||
function GetCurrent: TFields;
|
||||
public
|
||||
constructor Create(ADataSet: TDataSet);
|
||||
function MoveNext: Boolean;
|
||||
property Current: TFields read GetCurrent;
|
||||
end;
|
||||
|
||||
TDataLink = class(TPersistent)
|
||||
private
|
||||
FFirstRecord,
|
||||
@ -2183,6 +2194,8 @@ function BuffersEqual(Buf1, Buf2: Pointer; Size: Integer): Boolean;
|
||||
|
||||
function SkipComments(var p: PChar; EscapeSlash, EscapeRepeat : Boolean) : boolean;
|
||||
|
||||
operator Enumerator(ADataSet: TDataSet): TDataSetEnumerator;
|
||||
|
||||
implementation
|
||||
|
||||
uses dbconst,typinfo;
|
||||
|
Loading…
Reference in New Issue
Block a user