Dbgetfx()
PURPOSE
get extended .dbf file information
SYNOPSIS
#include<dbl.h> int dbgetfx(dbf, reclen, month, day, year, nofields, fields, fldpos, flddes) <input parameter> char *dbf; /* Address of the .DBF file descriptor */ <output parameters> int reclen; /* Record length in bytes */ char *month; /* File creation/update month */ char *day; /* File creation/update day */ char *year; /* File creation/update year */ int *nofields; /* Number of fields in a record */ dBFIELD *fields; /* Array of record fields */ int *fldpos; /* Array of offsets where each field commences */ char flddes[128][26]; /* Array to hold field descriptions of each field */
RETURN VALUE
The dbgetfx() function returns 0 for success, or < 0 if an error occurs. See the section on return code values for a detailed list of return codes.
DESCRIPTION
This function obtains database information such as month, day and year of creation or last update, record length, number of fields per record and definitions for each field. The buffer "fields" must be big enough to hold the maximum number of dBFIELD structures: 128 (maximum number of fields per record). The offset for each field position in the record is placed in the buffer "int *fldpos". The field description for each field is placed into "char flddes[128][26]".
EXAMPLE
This example reads database information from the .dbf file and prints record length, update information and number of fields per record on standard output.
#include "dbl.h" char *dbf; /* .DBF file descriptor */ int reclen; /* Record length */ char month, day, year; /* Date of last update */ int nofields; /* Number of fields per record */ dBFIELD fields[128]; /* Fields buffer */ int 1dpos[128]; /* Fields position buffer */ char flddes[128][26]; /* Fields description buffer */ int rc; /* Return code */ rc = dbgetf (dbf, &reclen, &month, &day, &year, &nofields, fields, fldpos, flddes); if (rc = = SUCCESS) { printf("reclen=%d month=%d day=%d year=%d, nofields=%d n",reclen, month, day, year, nofields); } else{ printf("error number %dn", rc); exit (1); }