Dbgetrk()

From Recital Documentation Wiki
Jump to: navigation, search

PURPOSE

get a data record by key


SYNPOSIS

#include "dbl.h"
 
	int	dbgetrk(dbf, ndx, key, record, status)
 
	<input parameters>
	char	*dbf;		/* .DBF file descriptor */
	char	*ndx;	/* .NDX file descriptor */
	char	*key;	/* Address of a key buffer */
 
	<output parameters>
	char	*record;	/* Address of a buffer where record's contents are stored */
	char	*status;	/* Status of record: ACTIVE or INACTIVE */


RETURN VALUE

The dbgetrk() function returns 0 for success, or < 0 if an error occurs. See the section on return code values for a detailed list of failure codes.


DESCRIPTION

This function obtains a record from a .DBF file by key. First, the function looks for the specified key in the .NDX file and if found, obtains the corresponding record number. It then accesses the .DBF file directly by the record number and transfers the record to the user supplied buffer. The status of the record is returned in the user supplied variable.


EXAMPLE

This example reads a record from a .DBF file whose file descriptor is specified in "char *dbf" that matches the character key "021-70-9045", stores the contents of the record in the buffer "char record[1000]" and the status of the record in the variable "char status". The status is printed on the standard output.

#include "dbl.h"
 
	char	*dbf;					/* .DBF file descriptor */
	char	*ndx;				/* .NDX file descriptor */
	char	key[20] = "021-70-9045";	/* Key */
	char	record[1000];			/* Record buffer */
	char	status;				/* Status: ACTIVE or INACTIVE */
	int	rc;					/* Return code */
 
	rc = dbgetrk(dbf, ndx, key, record, &status);
	if (rc == SUCCESS) {
		printf("The status of the record matching the key,
			%s is %d \n", key, status);
	} else {
		printf("error number %d \n", rc);
		exit (1);
	}


SEE ALSO

dbdcache(), dbdelete(), dbgather(), dbgetr(), dbscatter(), dbtkey()