Page 1 of 1

I need DBSKIPUNIQUE() Function

Posted: Fri Feb 17, 2012 10:03 am
by unixkd
Hi Roger

I want to skip to the next unigue record in a non-unigue table. I am using ADSDBE and I tried using AdsSkipUnique( hIndex, 1 ) API but didn't work.

Thanks

Joseph

Re: I need DBSKIPUNIQUE() Function

Posted: Fri Feb 17, 2012 10:25 am
by rdonnay

Code: Select all

FUNCTION dbSkipUnique( n )

LOCAL xValue, cLastChar, cSeek, xNewValue


  IF n > 0
    xValue := &(IndexKey(0))
    cLastChar := SubStr(xValue,LEN(xValue))
    cSeek := SubStr(xValue,1,LEN(xValue)-1)+Chr(Asc(cLastChar)+1)
    dbSeek(cSeek,.t.)
  ELSE
    xValue := &(IndexKey(0))
    dbSkip(-1)
    xNewValue := &(IndexKey(0))
    IF xNewValue == xValue .AND. !Bof()
      dbSeek(xNewValue)
      dbSkip(-1)
    ENDIF
  ENDIF

RETURN nil