DBF FETCH()

From Recital Documentation Wiki
Jump to: navigation, search

PURPOSE

Fetch a record from the current database


SYNONYM

api_dbf_fetch()


SYNOPSIS

#include "dbapi.h"
 
int	DBF_FETCH(inflag, forcond, whilecond, lock, position_indexes, direction)
 
<input parameters>
int	*initflag;			/* Address of a buffer containing initialize flag		*/
char	*forcond;			/* Address of a buffer containing a valid for condition	*/
char	*whilecond;		/* Address of a buffer containing a valid while condition	*/
int	lock;				/* Lock record for update					*/
int	position_indexes;	/* Reposition the indexes					*/
int	direction;			/* Direction of search						*/
 
<output parameters>
none


DESCRIPTION

The DBF_FETCH() function will a record from the currently selected database.

If the contents initialize flag is set to 0 then the current record will be reread, otherwise the next record for the specified conditions will be read.

The fetch function moves the record pointer forwards or backwards in currently selected database. If the value of direction is 1 the record pointer is moved forward or backwards if the value is -1.

If a filter condition is set, the record pointer will skip over any records that do not match the filter condition.

Also a FOR condition can be specified with the DBF_FETCH() function. The record pointer will search in the direction specified until a record is found that matches the FOR condition or until the EOF or BOF is reached.

If a WHILE condition is specified then the DBF_FETCH() function will terminate when the specified condition is false.

If the value of lock is specified as 1, then the current record is unlocked and the next record fetched is locked. If the value is0, then the next record fetched is read without locking but the record buffer is purged if the database is shareable.

If the value of position_indexes is specified as 1, then all secondary indexes open on the current database are repositioned. This should be done when updates are to be performed.

The DBF_FETCH() function returns -1 if no more records are available.


EXAMPLE

The following example returns the number of records in the database that match the condition "ord_value.1000".


#include ,stdio.h>
#include "dbapi.h"
 
dbapi_dbf_fetch()
{
    int	nrecs;
    int	initflag;
    int	result;
 
    DBF_GOTO(API_TOP);
 
    nrecs=0;
    result = DBF_FETCH(&initflag,
       "ord_value.1000",
       NULL,
       0,
       1,
       1);
 
    while (result >=0) {
       ++nrecs;
       result = DBF_FETCH(&initflag,
       "ord_value.1000",
       NULL,
       0,
       1,
       1);
 
    }
 
    _retni(nrecs);
}


SEE ALSO

DBF_DELETE(), DBF_DELETED(), DBF_FILTER(), DBF_GOTO(), DBF_LOCKR(), DBF_RECALL(), DBF_RECNO(), DBF_SEEK(), DBF_SKIP(), DBF_UNLOCKF(), DBF_UNLOCKR()