 |
PutXtdKeySegmentDef
Defines an extended key segment for a Server, an application, a data file, an index file, or a particular index segment.
Short Name
PUTKSEGDEF()
Type
ISAM Data Definition
Declaration
NINT PutXtdKeySegmentDef(NINT filno, NINT segno, pctKSEGDEF pkdef)
Description
PutXtdKeySegmentDef() defines an extended key segment for a Server, an application, a data file, an index file, or a particular index segment. The pkdef parameter points to a definition to be created in a call to PutXtdKeySegmentDef(). The filno and segno parameters determine where the definition is to be stored, as follows:
filno
|
segno
|
Interpretation
|
ctKSEGserver
|
ignored
|
Create server default definition.
|
ctKSEGapplic
|
ignored
|
Create application default definition.
|
datno
|
ignored
|
Create data file level definition.
|
keyno
|
ctKSEGindex
|
Create index file level definition.
|
keyno
|
0, 1, 2, …
|
Create specific segment definition.
|
Return
PutXtdKeySegmentDef() returns a handle for the definition if successful.
PutXtdKeySegmentDef() returns a negative value upon error, where the absolute value of the return value is the error code. The most common errors are shown below. See “c-tree Plus Error Codes” in the c-tree Plus Programmer’s Reference Guide for a complete listing of valid c-tree Plus error values.
Value
|
Symbolic Constant
|
Explanation
|
62
|
LERR_ERR
|
PutXtdKeySegmentDef() called for a data or index file requires the file to be opened exclusively. A just created file is in exclusive mode, regardless of the specified file mode, until it is closed and re-opened.
|
437
|
DADR_ERR
|
NULL pkdef argument.
|
445
|
SDAT_ERR
|
No source data to create key segment.
|
446
|
BMOD_ERR
|
Improper filno or segno values if the handle references an extended key segment definition not supported by the executable.
|
589
|
LADM_ERR
|
Only an ADMIN group member may set a Server default (i.e., ctKSEGserver).
|
694
|
NUNC_ERR
|
Executable does not support ICU Unicode, but a UNCSEG modifier has been encountered.
|
700
|
OSEG_ERR
|
Could not process key segment definition.
|
701
|
CSEG_ERR
|
Could not process the kseg_comp options. This could occur if more than one of a set of mutually exclusive options are combined.
|
702
|
ASEG_ERR
|
An error occurred when attempting to process one of the special attribute options.
|
703
|
HSEG_ERR
|
Invalid key segment handle in a call to TransformXtdSegment() or in a call to GetXtdKeySegmentDef() when the ctKSEGhandle option is used and the segno parameter should be set to a valid extended key segment handle.
|
704
|
SSEG_ERR
|
No source type provided when kseg_styp has been set to ctKSEG_STYP_PROVIDED. If this error occurs, it is likely to occur during the first use (say with an AddRecord() or AddVRecord() or OpenIFile()) of the extended key segment.
|
705
|
DSEG_ERR
|
An extended key segment definition already exists at the level implied by the PutXtdKeySegmentDef() call.
|
706
|
NSEG_ERR
|
Zero bytes of binary sort key were generated. Possibly an all NULL source.
|
707
|
USEG_ERR
|
There is no extended key segment definition to use.
|
708
|
MBSP_ERR
|
Multibyte/Unicode file names are not supported.
|
709
|
MBNM_ERR
|
A badly formed multibyte/Unicode file name has been encountered.
|
710
|
MBFM_ERR
|
A multibyte/Unicode variant is not supported (e.g., UTF32).
|
Example
See the API example in Chapter 19 “Unicode Support”.
See also
AddRecord(), AddVRecord(), OpenIFile(), PutXtdKeySegmentDef(), GetXtdKeySegmentDef(), TransformXtdSegment()
|