Dbxcreate()
From Recital Documentation Wiki
PURPOSE
create an index tag in a tagged index file
SYNOPSIS
#include "dbl.h" int dbxcreate(dbf, tagname, dbx, keyexpr, forexpr, keyunique, keydescend) <input parameters> char *dbf; /* Table .DBF file descriptor */ char *tagname; /* Name of the tag to be created */ char *keyexpr; /* Address of a buffer containing key expression */ char *forexpr; /* Address of a buffer containing for expression */ int keyunique; /* If >= 1, tag is created unique */ int keydescend; /* If >= 1, tag is created in descending order */ <output parameters> char *dbx; /* Open tagged index file descriptor */
RETURN VALUE
The dbxcreate() 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
The dbxcreate() function will create an index tag for the specified table, .DBF in a tagged index file, .DBX. If the tagged file does not already exist, it is created with the same name as the table.
EXAMPLE
The following example creates a tag on the VESSEL field for the shipwreck.dbf table.
#include <stdio.h> #include "dbl.h" /* Recital/Library include file */ #include "dblproto.h" /* Recital/Library prototype file */ static dBFIELD fields[6] = { "VESSEL", 'C', 18, 0, 0, "LAT", 'N', 4, 1, 0, "LONG", 'N', 4, 1, 0, "AMOUNT", 'N', 10, 0, 0, "DATE", 'D', 8, 0, 0, "FLAG", 'C', 9, 0, 0 }; static void errorproc( char *func, char *str, int rc); main() { int rc; /* Return Code for error handling */ char *dbf; /* File descriptor for table */ char *dbx; /* File descriptor for tagged index */ rc = dbdcache(100); errorproc("dbdcache()","table cache specified.", rc); rc = dbicache(100); errorproc("dbicache()", "index cache specified.",rc); rc = dbfilemode(0,0); rc = dbopen("shipwreck.dbf", &dbf); errorproc("dbopen()","table opened in exclusive mode.", rc); rc = dbxcreate( dbf, fields[0].fieldnm, /* "VESSEL", */ &dbx, fields[0].fieldnm, /* "VESSEL", */ NULL, 0, 0); errorproc("dbxcreate()","tag created", rc); rc = dbxclose(dbx); errorproc("dbxclose()", "tagged index closed.", rc); rc = dbclose(dbf); errorproc("dbclose()", "table closed.", rc); exit(0); } static void errorproc(func, str, rc) char *func; char *str; int rc; { if ( rc != SUCCESS ) { printf("\n Error performing function %s -> %d\n", func, rc); exit(1); } printf("Function: \t%s, \t%s - Ok\n", func, str); return; }