|
DSC Tech Library
FASTPLUS C Library
fpfile_create()
Function fpfile_create creates a FASTPLUS file from within an application program.
The syntax for fpfile_create is as follows:
fpfile_create(char *name, struct fpc_file *file_desc, struct fpc_index *index_desc,
struct fpc_data *data_desc, struct fpc_journ *journ_desc)
char *name - File pathname. null terminated pointer.
struct fpc_file{ - Structure to describe base file info
int record_len; - record length in bytes - 0 for variable length records
int recover; - set to true for recovery of deleted data record space
int compress; - set to true for compression of data records
int update_mod; - update modulus for count caching
int sync_flag - bitmaped None/Data/Indexes/Both
int num_data; - number of split data partitions - up to 8
int num_index; - highst index number defined
int version; - not used by fpfile_create
char date[6]; - not used by fpfile_create
};
struct fpc_index{ - Structured array to describe indexes
char *pathname; - pointer to pathname if split, NULL pointer or pointer to null string if not split
int no_dupes; - set to true if dupes not allowed
int sparse_key; - set to true to not add blank and/or null keys
int num_parts; - number of parts of data record in this key (0 if not in data)
struct fpc_part{ - describe key in data record
int pos; - zero based part offset in data record
- (-1) for key not in data
int len; - size of part in bytes - returned by fpinfo_create()
int type; - type of key part
- 0, FPC_KEY_NONE - don't create this index
- 1, FPC_KEY_CHAR - character key - size = bytes
- 2, FPC_KEY_SHORT - 2-byte integer key - size = ignored
- 3, FPC_KEY_INT - 4-byte integer key - size = ignored
- FPC_KEY_LONG - 4-byte integer key - size = ignored
- 4, FPC_KEY_LONG - 4-byte floating point key - size = ignored
- 5, FPC_KEY_DBLE - 8-byte floating point key - size = ignored
- 6, FPC_KEY_BIT - bit field key - size = number of bits
- 7, FPC_KEY_DECLS - decimal leading separate field key - size = digits - not including sign
- 8, FPC_KEY_DECTS - decimal trailing separate field key - size = digits - not including sign
- 9, FPC_KEY_PACK - packed decimal field key - size = digits (must be odd number)
- 10, FPC_KEY_DECLE - decimal leading embeded field key - size = digits
- 11, FPC_KEY_DECTE - decimal trailing embeded field key - size = digits
- FPC_KEY_DEC - decimal trailing embeded field key - size = digits
- 12, FPC_KEY_DATE - 3 2-bytes integers (year, month, day) key - size = ignored
int size; - size of part in units (chars, bits, or digits)
}parts[FPC_MAX_PARTS];
};
struct fpc_data{ - Structured array to describe data nodes
int size; - size in bytes of this partition
char *pathname; - filename of partition
};
struct fpc_journ{ - Structure to describe journal file
int size; - maximum size of journal file
char *pathname; - filename of journal file
};
NOTE: The Recover Deleted
Record Space option in fpadmin is invalid for files specified with variable
length data records or with the Compress Data Records option.
The possible values for fperrno and an explanation of each value follow.
Value
Explanation
--------------------------------------------------
FEROK - Code 0: Successful
FASTPLUS Operation
FCENAM - Code 31: Illegal file name
FCEEXT - Code 32: File already exists
FCENWD - Code 33: Illegal number of words
FCENKY - Code 34: Illegal number of keys
FCECUM - Code 35: Illegal count update modulus
FCEKTP - Code 37: Illegal index type
FCENCH - Code 38: Illegal number of characters
FCEFLG - Code 40: Illegal record flag comb.
FCEACC - Code 42: Illegal access rights
FCENDP - Code 47: Illegal # of data partitions
FCEPSZ - Code 49: Illegal data partition size
FCEFHE - Code 51: System error
|