/* * Reposition cursor, regardless of filter. */ static HB_ERRCODE hb_sdfSkipRaw( SDFAREAP pArea, HB_LONG lToSkip ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfSkipRaw(%p,%ld)", pArea, lToSkip ) ); if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; if( lToSkip != 1 ) return HB_FAILURE; else return hb_sdfNextRecord( pArea ); }
/* * Reposition cursor, regardless of filter. */ static HB_ERRCODE hb_sdfSkipRaw( SDFAREAP pArea, HB_LONG lToSkip ) { HB_TRACE( HB_TR_DEBUG, ( "hb_sdfSkipRaw(%p,%ld)", pArea, lToSkip ) ); if( SELF_GOCOLD( &pArea->area ) != HB_SUCCESS ) return HB_FAILURE; if( lToSkip != 1 || ! pArea->fReadonly ) /* generate RTE */ return SUPER_SKIPRAW( &pArea->area, lToSkip ); else return hb_sdfNextRecord( pArea ); }
/* * 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 ); }