Micha Nelissen escreveu:
On Mon, 10 Apr 2006 12:33:18 +0200
Joost van der Sluis <[EMAIL PROTECTED]> wrote:
If you don't want to limit, then set .Filtered := false; and use
FindFirst etc.
wich won't work with current sqldb, since filtering there simply adds a
'where' part to the query.
An which is much slower then locate and locatenext.
Same story for TDbf :-).
Isn't the mean reason why you and Michael aren't using locate, that
locatenext is missing?
Oh, I am using Locate. I'm just talking from the general TDataSet POV.
That said, LocateNext may be useful, but I would rather add a flag to
Locate; a TLocateNagivation (lnFirst, lnPrior, lnNext, lnLast), with the
default being lnFirst, thus compatible. It's a bit more flexible.
OTOH, is it really impossible to do it the "right" way, implementing the
filter more efficiently, in sqldb ?
Adding redundant ways to do the same thing is not ideal IMHO.
Just one information. I based the LocateNext implemetation of
TCustomSqliteDataset in the found at FIBL which was the only TDataset
that had it implemented.
Here is the FIBL approach:
function Locate(const KeyFields: String; const KeyValues: Variant;
Options: TLocateOptions): Boolean;
function LocateNext(const KeyFields: String; const KeyValues: Variant;
Options: TLocateOptions): Boolean; // Sister function to Locate
Luiz
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel