On Sun, 09 Aug 2009, AbeB wrote:

Hi,

> i'm getting closer to the source of this bug.
> the index will start from the current record if the last movement in the
> Area was a Seek.
> it will start from the beginning of the file if the last movement was a
> Skip.
> Remember this only happens on a remote connection.

I'm afraid I cannot help you. I'm not ADS user and I do not have
ADS remote server so I cannot replicate the problem and look for
workaround. For me it looks like a problem with ADS/ACE not in
Harbour. Probably the positioning is done locally by client only
using some read ahead record buffer transferred to the client and
server knows nothing about it. In such case the only one thing we
can make is finding workaround to inform server about current record
on client side (ACE library) to force processing from this record
when subindex is created.
You can ask about it on ADS list. ADS/ACE authors should give precise
answer about the source of problem and possible workarounds.
Or some users/developers with access to ADS server can try to
find workaround themselves and add it to adsOrderCreate() in ads1.h.
Maybe simple:
   {
      ULONG ulCurRec;
      SELF_RECNO( ( AREAP ) pArea, &ulCurRec );
      SELF_GOTO( ( AREAP ) pArea, ulCurRec );
   }
at line 3806 just before AdsCreateIndex*() will be enough.
You can check.
Anyhow it will be good to hear ADS/ACE authors opinion.

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to