static HB_ERRCODE adsxGoTop( ADSXAREAP pArea ) { PMIXTAG pTag; HB_ULONG ulRecNo; pTag = pArea->pTagCurrent; if( ! pTag ) return SUPER_GOTOP( ( AREAP ) pArea ); if( pTag->ulRecCount > 0 ) { ulRecNo = pTag->pKeys[ 0 ]->rec; } else { ulRecNo = 0; } if( SUPER_GOTO( ( AREAP ) pArea, ulRecNo ) == HB_SUCCESS ) { pTag->ulKeyNo = ulRecNo ? 1 : 0; return HB_SUCCESS; } pTag->ulKeyNo = 0; return HB_FAILURE; }
/* * Position cursor at a specific physical record. */ static HB_ERRCODE hb_sdfGoTo( SDFAREAP pArea, HB_ULONG ulRecNo ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfGoTo(%p, %lu)", pArea, ulRecNo ) ); #ifndef HB_CLP_STRICT if( pArea->fReadonly && ulRecNo >= pArea->ulRecNo ) { while( pArea->ulRecNo < ulRecNo && pArea->fPositioned ) { if( hb_sdfNextRecord( pArea ) != HB_SUCCESS ) return HB_FAILURE; } return HB_SUCCESS; } #endif /* generate RTE */ return SUPER_GOTO( &pArea->area, ulRecNo ); }