/* $Id: sdetype.h,v 1.306 2003/11/05 19:43:11 jose2260 Exp $ */
/***********************************************************************
*
*N {sdetype.h} -- Spatial Database Engine Datatypes/Defines Header File
*
*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*
*P Purpose:
*
* Spatial Database Engine Datatypes/Defines Header File
*
* COPYRIGHT 1992-2003 ESRI
*
* TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
* Unpublished material - all rights reserved under the
* Copyright Laws of the United States.
*
* For additional information, contact:
* Environmental Systems Research Institute, Inc.
* Attn: Contracts Dept
* 380 New York Street
* Redlands, California, USA 92373
*
* email: contracts@esri.com
*
*E
*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*
*H History:
*
*E
***********************************************************************/
#ifndef SDE_TYPES
#define SDE_TYPES
#ifdef __cplusplus
extern "C" {
#endif
#include
#include
#include
#include "sg.h"
#define SE_ALL 0
/************************************************************
*** Backwards compatibility macros for SDE 3.0 code -- use
*** SE_RELEASE and SE_connection_get_release() instead.
*** At some future point these will probably be removed.
************************************************************/
#ifndef SDE_COMMON
# define SE_VERSION SE_RELEASE
# define SE_connection_get_version SE_connection_get_release
#endif /* SDE_COMMON */
/************************************************************
*** ALLOWABLE SHAPE TYPE MASKS FOR LAYERS
************************************************************/
#define SE_NIL_TYPE_MASK (1L)
#define SE_POINT_TYPE_MASK (1L<<1) #define
SE_LINE_TYPE_MASK
(1L<<2)
SE_SIMPLE_LINE_TYPE_MASK
(1L<<3)
SE_AREA_TYPE_MASK
(1L<<4)
SE_MULTIPART_TYPE_MASK
(1L<<18)
/************************************************************
***
ALLOWABLE
STORAGE
TYPE
MASKS
FOR
LAYERS
************************************************************/
SE_STORAGE_NORMALIZED_TYPE
(1L<<23)
SE_STORAGE_SDEBINARY_TYPE
(1L<<24)
SE_STORAGE_WKB_TYPE
(1L<<25)
SE_STORAGE_SQL_TYPE
(1L<<26)
SE_STORAGE_SPATIAL_TYPE
(1L<<27)
SE_STORAGE_LOB_TYPE
(1L<<28)
LAYER
CHARATERISTICS
SE_LAYER_AUTO_REGISTER
(1L<<5)
SE_LAYER_HAS_USER_DEFINED_EXTENT
(1L<<6)
SE_LAYER_HAS_GEODETIC_EXTENT
(1L<<1)
PRECISION
SE_LAYER_PRECISION_DEFAULT
0
SE_LAYER_PRECISION_32_BIT
32
SE_LAYER_PRECISION_64_BIT
64
OGC
Declarations
SE_OGC_STORAGE_NORMALIZED
SE_OGC_STORAGE_WKB
1
SE_OGC_STORAGE_OTHER
2
Geometry
Values
typedef
enum
{
SE_OGC_GEOMETRY="0,"
SE_OGC_POINT="1,"
SE_OGC_CURVE="2,"
SE_OGC_LINESTRING="3,"
SE_OGC_SURFACE="4,"
SE_OGC_POLYGON="5,"
SE_OGC_COLLECTION="6,"
SE_OGC_MULTIPOINT="7,"
SE_OGC_MULTICURVE="8,"
SE_OGC_MULTILINESTRING="9,"
SE_OGC_MULTISURFACE="10,"
SE_OGC_MULTIPOLYGON=11
}
SE_OGC_GEOMETRY_TYPES;
/**************************************************************************
OBSOLETE
DEFINES
--
NOT
NEW
CODE
***************************************************************************/
SE_NORMALIZED_TYPE_MASK
SE_EXTERNAL_TYPE_MASK
SE_REGISTERED_TYPE_MASK
/***************************************/
/******
ACCESS
RIGHTS
CONSTANTS
********/
SE_SELECT_PRIVILEGE
(1<<1)
SE_UPDATE_PRIVILEGE
(1<<2)
SE_INSERT_PRIVILEGE
(1<<3)
SE_DELETE_PRIVILEGE
(1<<4)
/***************************************************/
TABLE
UPDATING
DBMS
STATS
SE_UPDATE_ADDS_TABLE_STATS
SE_UPDATE_DELETES_TABLE_STATS
SE_UPDATE_FEATURE_TABLE_STATS
SE_UPDATE_BUSINESS_TABLE_STATS
SE_UPDATE_RASTER_TABLE_STATS
SE_UPDATE_XML_TABLE_STATS
(1L<<7)
SE_UPDATE_ALL_TABLE_STATS
(SE_UPDATE_ADDS_TABLE_STATS
|
\
SE_UPDATE_BUSINESS_TABLE_STATS)
LOCKING
MODES
SE_WRITE_LOCK
SE_READ_LOCK
ATTRIBUTE
DATA
TYPES
SE_INT16_TYPE
/*
2-byte
Integer
*/
SE_INT32_TYPE
4-byte
SE_FLOAT32_TYPE
3
Float
SE_FLOAT64_TYPE
4
8-byte
SE_STRING_TYPE
5
Null
Term.
Character
Array
SE_BLOB_TYPE
6
Variable
Length
SE_DATE_TYPE
7
Struct
tm
Date
SE_SHAPE_TYPE
8
Shape
(SE_SHAPE)
SE_RASTER_TYPE
9
Raster
SE_XML_TYPE
10
XML
Document
SE_INT64_TYPE
11
SE_UUID_TYPE
12
A
Universal
Unique
ID
SE_CLOB_TYPE
13
SE_NSTRING_TYPE
14
UNICODE
SE_NCLOB_TYPE
15
Large
Object
SE_POINT_TYPE
20
Point
ADT
SE_CURVE_TYPE
21
LineString
SE_LINESTRING_TYPE
22
SE_SURFACE_TYPE
23
Polygon
SE_POLYGON_TYPE
24
SE_GEOMETRYCOLLECTION_TYPE
25
MultiPoint
SE_MULTISURFACE_TYPE
26
SE_MULTICURVE_TYPE
27
SE_MULTIPOINT_TYPE
28
SE_MULTILINESTRING_TYPE
29
MultiLineString
SE_MULTIPOLYGON_TYPE
30
MultiPolygon
SE_GEOMETRY_TYPE
31
OLD
(Depreciated)
SE_SMALLINT_TYPE
SE_INTEGER_TYPE
SE_FLOAT_TYPE
SE_DOUBLE_TYPE
DEFINING
LIMITS
<a
name=SE_MAX_MESSAGE_LENGTH>#define SE_MAX_MESSAGE_LENGTH 512 /* MAXIMUM ERROR MESSAGE LENGTH */
#define SE_MAX_SQL_MESSAGE_LENGTH 4096 /* MAXIMUM SQL ERROR MESSAGE LENGTH */
#define SE_MAX_PATH_LEN 512 /* MAXIMUM FILE PATH NAME LENGTH */
#define SE_MAX_CONFIG_KEYWORD_LEN 32 /* MAXIMUM CONFIGURATION KEYWORD
LENGTH */
#define SE_MAX_CONFIG_STR_LEN 2048 /* MAXIMUM CONFIGURATION STRING LENGTH */
#define SE_MAX_PROP_NAME_LEN 32 /* MAXIMUM PROPERTY NAME LENGTH */
#define SE_MAX_PROP_VAL_LEN 512 /* MAXIMUM PROPERTY VALUE LENGTH */
#define SE_MAX_DESCRIPTION_LEN 64 /* MAXIMUM LAYER DESCRIPTION LENGTH */
#define SE_MAX_FEAT_CLASS_LEN 128 /* MAXIMUM FILEINFO FEATUE CLASS
DESCRIPTION LENGTH */
#define SE_MAX_COLUMN_LEN 32 /* MAXIMUM COLUMN NAME LENGTH */
#define SE_MAX_TABLE_LEN 160 /* MAXIMUM TABLE NAME LENGTH */
#define SE_MAX_SCHEMA_TABLE_LEN 30 /* MAXIMUN TABLE 'ONLY' NAME LENGTH */
#define SE_MAX_ALIAS_LEN 32 /* MAXIMUM TABLE ALIAS LENGTH */
#define SE_MAX_ENTITY_LEN 256 /* MAXIMUM ENTITY TYPE LENGTH */
#define SE_MAX_HINT_LEN 1024/* MAXIMUM DBMS HINT LENGTH */
#define SE_MAX_OWNER_LEN 32 /* MAXIMUM TABLE OWNER NAME LENGTH */
#define SE_MAX_INDEX_LEN 160 /* MAXIMUM INDEX NAME LENGTH */
#define SE_MAX_GROUP_LEN 26 /* MAXIMUM GROUP NAME LENGTH */
#define SE_MAX_COLUMNS 256 /* MAXIMUM NUMBER OF COLUMNS */
#define SE_MAX_ANNO_TEXT_LEN 255 /* MAXIMUM ANNOTATION TEXT LENGTH */
#define SE_MAX_VERSION_LEN 64 /* MAXIMUM VERSION NAME LENGTH */
#define SE_MAX_OSNAME_LEN 64 /* MAXIMUM OPERATING SYSTEM NAME LENGTH */
#define SE_MAX_OSVERSION_LEN 128 /* MAXIMUM OPERATING SYSTEM VERSION LENGTH */
#define SE_MAX_DBMSVERSION_LEN 128 /* MAXIMUM DATABASE VERSION LENGTH */
#define SE_MAX_VERSION_INPUT_LEN 62 /* MAXIMUM USER-SUPPLIED VERSION NAME
LENGTH */
#define SE_MAX_OBJECT_NAME_LEN 160 /* MAXIMUM OBJECT NAME LENGTH */
#define SE_MAX_METADATA_CLASS_LEN 32 /* MAXIMUM CLASS NAME LENGTH */
#define SE_MAX_METADATA_PROPERTY_LEN 32/* MAXIMUM PROPERTY NAME LENGTH */
#define SE_MAX_METADATA_VALUE_LEN 255 /* MAXIMUM VALUE LENGTH */
#define SE_MAX_LOCATOR_PROPERTY_LEN 32 /* MAXIMUM PROPERTY NAME LENGTH */
#define SE_MAX_LOCATOR_VALUE_LEN 255 /* MAXIMUM VALUE LENGTH */
#define SE_MAX_SERVER_LEN 32 /* MAXIMUM SERVER NAME LENGTH */
#define SE_MAX_INSTANCE_LEN 32 /* MAXIMUM INSTANCE NAME LENGTH */
#define SE_MAX_PASSWORD_LEN 32 /* MAXIMUM PASSWORD NAME LENGTH */
#define SE_MAX_DATABASE_LEN 32 /* MAXIMUM DATABASE NAME LENGTH */
#define SE_MAX_SCL_CODESIZE 256 /* MAXIMUM SCL OBJECT CODE LENGTH */
#define SE_MAX_FUNCTION_LEN 32 /* MAXIMUM FUNCTION NAME LENGTH */
#define SE_MAX_KEYWORD_LEN 32 /* MAXIMUM DBMS RESERVED KEYWORD LENGTH */
#define SE_MAX_LOGFILE_NAME_LEN 64 /* MAXIMUM BASE LOGFILE NAME LENGTH */
#define SE_UUID_STRING_LEN 40 /* UUID STRING LENGTH + 1 Nil byte +
3 bytes for alignment. */
#define SE_MAX_XML_INDEX_NAME_LEN 32 /* MAXIMUM XML INDEX NAME LENGTH */
#define SE_MAX_XML_TAG_NAME_LEN 256 /* MAXIMUM XML TAG NAME STRING LENGTH */
#define SE_MAX_SID_COLUMN_LEN 38 /* MAXIMUM LENGTH OF STATE_ID COLUMN */
#define SE_MAX_LIN_COLUMN_LEN 38 /* MAXIMUM LENGTH OF LINEAGE_NAME COLUMN */
#define SE_MAX_TRANSFORM_NAME_LEN 256 /* MAXIMUM LENGTH OF A TRANSFORM NAME */
/* CONSTANTS ALLOWING FOR FULLY QUALIFIED TABLE AND COLUMN NAMES */
#define SE_QUALIFIED_TABLE_NAME (SE_MAX_DATABASE_LEN + SE_MAX_OWNER_LEN +\
SE_MAX_TABLE_LEN + 2)
#define SE_QUALIFIED_COLUMN_LEN (SE_QUALIFIED_TABLE_NAME + \
SE_MAX_COLUMN_LEN + 1)
#define SE_QUALIFIED_VERSION_LEN (SE_MAX_OWNER_LEN + SE_MAX_VERSION_LEN + 1)
#define SE_QUALIFIED_LOGFILE_NAME (SE_MAX_DATABASE_LEN + SE_MAX_OWNER_LEN +\
SE_MAX_LOGFILE_NAME_LEN + 2)
#define SE_QUALIFIED_OBJECT_NAME (SE_MAX_DATABASE_LEN + SE_MAX_OWNER_LEN +\
SE_MAX_OBJECT_NAME_LEN + 2)
#define SE_QUALIFIED_XML_INDEX_LEN (SE_MAX_XML_INDEX_NAME_LEN + \
SE_MAX_OWNER_LEN + 1)
/************************************************************
*** Minimum gridsize for Layer
************************************************************/
#define SE_MIN_GRIDSIZE 256 /* MINIMUM LAYER GRIDSIZE (system units) */
/************************************************************
*** ATTRIBUTE INDICATOR VALUES
************************************************************/
#define SE_IS_NULL_VALUE 1
#define SE_IS_NOT_NULL_VALUE 2
/************************************************************
*** LOG FILE DEFINES
************************************************************/
#define SE_INPUT_MODE 0
#define SE_OUTPUT_MODE 1
#define SE_EXTEND_MODE 2
#define SE_OUTPUT_NO_DELETE_MODE 3
#define SE_LOG_PERSISTENT 1
#define SE_LOG_TEMPORARY 2
#define SE_LOG_FOR_TABLE 1
#define SE_LOG_FOR_LAYER 2
#define SE_LOG_INTERSECT 1
#define SE_LOG_UNION 2
#define SE_LOG_DIFFERENCE 3
#define SE_LOG_SYMDIFF 4
typedef enum {
SE_LOGFILE_DELETE_MODE_DEFER = 0,
SE_LOGFILE_DELETE_MODE_IMMEDIATE
} SE_LOGFILE_DELETE_MODE;
/************************************************************
*** SPATIAL REFERENCE DEFINES
************************************************************/
#define SE_MAX_SPATIALREF_AUTHNAME_LEN 256
#define SE_MAX_SPATIALREF_SRTEXT_LEN 2048
typedef struct _SE_SpatialRef *SE_SPATIALREFINFO;
/************************************************************
*** ALLOWABLE SPATIAL INDEX TYPE DEFINES FOR LAYERS
*** NOTE: THEIR AVAILABILITY IS DBMS DEPENDENT.
************************************************************/
#define SE_SPATIALINDEX_MULTI_GRID 1
#define SE_SPATIALINDEX_DBTUNE 0
#define SE_SPATIALINDEX_NONE -1
#define SE_SPATIALINDEX_RTREE -2
#define SE_SPATIALINDEX_FIXED_QUADTREE -3
#define SE_SPATIALINDEX_HYBRID_QUADTREE -4
#define SE_SPATIALINDEX_UNKNOWN -5
/************************************************************
*** SEARCH ORDERS
************************************************************/
#define SE_ATTRIBUTE_FIRST 1 /* DO NOT USE SPATIAL INDEX */
#define SE_SPATIAL_FIRST 2 /* USE SPATIAL INDEX */
#define SE_OPTIMIZE 3 /* LET SDE DECIDE */
/************************************************************
*** QUERY TYPES
************************************************************/
#define SE_QUERYTYPE_ATTRIBUTE_FIRST 1
#define SE_QUERYTYPE_JFA 2
#define SE_QUERYTYPE_JSF 3
#define SE_QUERYTYPE_JSFA 4
#define SE_QUERYTYPE_V3 5
#define SE_MAX_QUERYTYPE 5
/************************************************************
*** CONSTANTS FOR SE_PTABLE_SNAP routine
************************************************************/
#define SE_SNAP2D 0
#define SE_SNAP3D 1
/************************************************************
*** INDIVIDUAL BIT-MASKS FOR STATISTICS OPERATIONS
************************************************************/
#define SE_MIN_STATS 0x0001
#define SE_AVERAGE_STATS 0x0002
#define SE_MAX_STATS 0x0004
#define SE_STD_DEV_STATS 0x0008
#define SE_COUNT_STATS 0x0010
#define SE_DISTINCT_STATS 0x0020
#define SE_BASIC_STATS SE_MIN_STATS | SE_AVERAGE_STATS | SE_MAX_STATS | \
SE_STD_DEV_STATS | SE_COUNT_STATS
#define SE_ALL_STATS SE_BASIC_STATS | SE_DISTINCT_STATS
/************************************************************
*** CONCURRENCY POLICIES
************************************************************/
#define SE_UNPROTECTED_POLICY 0
#define SE_ONE_THREAD_POLICY 1
#define SE_TRYLOCK_POLICY 2
#define SE_LOCK_POLICY 3
/********************************************************************
*** SPATIAL FILTER TYPES FOR SPATIAL CONSTRAINTS AND STABLE SEARCHES
*********************************************************************/
#define SE_SHAPE_FILTER 1
#define SE_ID_FILTER 2
/************************************************************
*** STABLE OPTIONS
************************************************************/
#define SE_DELETE_CURRENT (LONG)0
/************************************************/
/*** SDE ROWID pseudo-column -- Obsolete!!!! ***/
/*** Only present for backwards compatibity: ***/
/*** Use registered tables row ID's instead. ***/
/************************************************/
#define SE_ROW_ID "SE_ROW_ID"
/**************************
* Binary Conversion Enum *
**************************/
typedef enum
{
SE_BINARY_CONVERSION_TO_LOB = 1,
SE_BINARY_CONVERSION_TO_LONGRAW = 2
} SE_BINARY_CONVERSION;
/*******************************/
/*** Shape attribute names ***/
/*******************************/
#define SE_SHAPE_ATTRIBUTE_NUMOFPTS 0
#define SE_SHAPE_ATTRIBUTE_ENTITY 1
#define SE_SHAPE_ATTRIBUTE_XMIN 2
#define SE_SHAPE_ATTRIBUTE_XMAX 3
#define SE_SHAPE_ATTRIBUTE_YMIN 4
#define SE_SHAPE_ATTRIBUTE_YMAX 5
#define SE_SHAPE_ATTRIBUTE_ZMIN 6
#define SE_SHAPE_ATTRIBUTE_ZMAX 7
#define SE_SHAPE_ATTRIBUTE_MMIN 8
#define SE_SHAPE_ATTRIBUTE_MMAX 9
#define SE_SHAPE_ATTRIBUTE_AREA 10
#define SE_SHAPE_ATTRIBUTE_LENGTH 11
#define SE_SHAPE_ATTRIBUTE_TEXT 12
#define SE_SHAPE_ATTRIBUTE_FID 13
/**********************************/
/***** DBMS IDENTIFIERS *********/
/**********************************/
#define SE_DBMS_IS_UNKNOWN -1
#define SE_DBMS_IS_OTHER 0
#define SE_DBMS_IS_ORACLE 1
#define SE_DBMS_IS_INFORMIX 2
#define SE_DBMS_IS_SYBASE 3
#define SE_DBMS_IS_DB2 4
#define SE_DBMS_IS_SQLSERVER 5
#define SE_DBMS_IS_ARCINFO 6
#define SE_DBMS_IS_IUS 7
#define SE_DBMS_IS_DB2_EXT 8
#define SE_DBMS_IS_ARCSERVER 9
#define SE_DBMS_IS_JET 10
/******************************/
/*** DBMS Properties ***/
/******************************/
#define SE_DBMS_CAN_RENAME (1<<0) #define
SE_DBMS_CAN_ADD_COL
(1<<1)
SE_DBMS_CAN_DROP_COL
(1<<2)
SE_DBMS_OWNER_PREFIXES_TABLE
(1<<3)
SE_DBMS_IS_CASE_SENSITIVE
(1<<4)
SE_DBMS_SUPPORT_DELIMITED_IDENTIFIER
(1<<5)
SE_DBMS_IS_CASE_SENSITIVE_IN_COMPARISON
(1<<6)
SE_DBMS_IS_USER_CASE_SENSITIVE
(1<<7)
SE_DBMS_IS_PASSWORD_CASE_SENSITIVE
(1<<8)
SE_DBMS_UNICODE_IN_ALL_CHAR
(1<<9)
SE_DBMS_UNICODE_IN_STRING_TYPE
(1<<10)
SE_DBMS_UNICODE_IN_CLOB_TYPE
(1<<11)
SE_DBMS_UNICODE_IN_OBJECT_NAMES
(1<<12)
SE_DBMS_CODEPAGE_IS_UTF8
(1<<13)
SE_DBMS_CODEPAGE_IS_UTF16
(1<<14)
SE_DBMS_CODEPAGE_IS_UCS2
(1<<15)
SE_DBMS_CHAR_TYPES_STORE_UTF8
(1<<16)
SE_DBMS_CHAR_TYPES_STORE_UTF16
(1<<17)
SE_DBMS_CHAR_TYPES_STORE_UCS2
(1<<18)
SE_DBMS_NCHAR_TYPES_STORE_UTF8
(1<<19)
SE_DBMS_NCHAR_TYPES_STORE_UTF16
(1<<20)
SE_DBMS_NCHAR_TYPES_STORE_UCS2
(1<<21)
SE_DBMS_CODEPAGE_IS_UNICODE
\
(SE_DBMS_CODEPAGE_IS_UTF8
|\
SE_DBMS_CODEPAGE_IS_UCS2)
/*******
Lock
type
values
for
SE_TABLE_LOCK
*******/
/*****************************************************/
SE_TABLE_SHARED_SCHEMA_LOCK
1
SE_TABLE_EXCLUSIVE_SCHEMA_LOCK
2
/****************************************************************************/
/***
INSTANCE
MODES
--
Returned
in
system_mode
field
of
SE_INSTANCE_STATUS
*/
SE_INSTANCE_ACCEPTING
SE_INSTANCE_BLOCKING
SE_INSTANCE_LOCK
SE_INSTANCE_LAYER_READ_LOCK
0
SE_INSTANCE_LAYER_WRITE_LOCK
SE_INSTANCE_AREA_READ_LOCK
SE_INSTANCE_AREA_WRITE_LOCK
3
SE_INSTANCE_AUTO_LOCK
4
/************************************/
SE_instance_control()
options
SE_CONTROL_INSTANCE_SHUTDOWN
SE_CONTROL_INSTANCE_PAUSE
SE_CONTROL_INSTANCE_RESUME
SE_CONTROL_INSTANCE_KILL
SE_CONTROL_INSTANCE_KILL_ALL
5
SE_CONTROL_INSTANCE_START
6
/****************************************/
SE_ANNO
text
justification
SE_ANNO_UPPER_LEFT
SE_ANNO_UPPER_CENTER
SE_ANNO_UPPER_RIGHT
SE_ANNO_CENTER_LEFT
SE_ANNO_CENTER_CENTER
SE_ANNO_CENTER_RIGHT
SE_ANNO_LOWER_LEFT
7
SE_ANNO_LOWER_CENTER
8
SE_ANNO_LOWER_RIGHT
9
Registered
Table
Row
ID
Types
SE_REGISTRATION_ROW_ID_COLUMN_TYPE_SDE
SE_REGISTRATION_ROW_ID_COLUMN_TYPE_USER
SE_REGISTRATION_ROW_ID_COLUMN_TYPE_NONE
/*********************************************************/
SDE-maintained
rowid
columns
allocation
methods
***/
SE_REGISTRATION_ROW_ID_ALLOCATION_SINGLE
SE_REGISTRATION_ROW_ID_ALLOCATION_MANY
Metadata
Object
SE_METADATA_OBJECT_TYPE_TABLE
SE_METADATA_OBJECT_TYPE_LOCATOR
SE_METADATA_OBJECT_TYPE_XML_COLUMN
Locator
Status
SE_LOCATOR_TEMPLATE
SE_LOCATOR_VALIDATED
SE_LOCATOR_DEFINED
/*********************************************/
External
FileInfo
SE_FILEINFO_OBJECT_TYPE_EXPORT_FMT
SE_FILEINFO_OBJECT_TYPE_SHAPEFILE
SE_FILEINFO_OBJECT_TYPE_COVERAGE
/********************************/
Version
Reserved
Names
SE_DEFAULT_VERSION_NAME
"DEFAULT"
SE_QUALIFIED_DEFAULT_VERSION_NAME
"sde"
"."
/******************************/
Access
SE_VERSION_ACCESS_PUBLIC
SE_VERSION_ACCESS_PROTECTED
SE_VERSION_ACCESS_PRIVATE
/****************************/
State
Ids
SE_BASE_STATE_ID
(0)
SE_NULL_STATE_ID
(-1)
SE_DEFAULT_STATE_ID
(-2)
/*************************************/
Conflict
Filter
SE_STATE_DIFF_NOCHECK
SE_STATE_DIFF_NOCHANGE_UPDATE
SE_STATE_DIFF_NOCHANGE_DELETE
SE_STATE_DIFF_UPDATE_NOCHANGE
SE_STATE_DIFF_UPDATE_UPDATE
SE_STATE_DIFF_UPDATE_DELETE
SE_STATE_DIFF_INSERT
SE_STATE_DIFF_RESTORE
/*******************************************************/
(for
SE_INSTANCE_STATE_LOCK)
SE_STATE_TREE_SHARED_LOCK
SE_STATE_TREE_EXCLUSIVE_LOCK
SE_STATE_SHARED_LOCK
SE_STATE_EXCLUSIVE_LOCK
SE_STATE_SHARED_AUTOLOCK
SE_STATE_EXCLUSIVE_AUTOLOCK
Rowlocking
SE_ROWLOCKING_LOCK_ON_QUERY
(1)
SE_ROWLOCKING_LOCK_ON_INSERT
SE_ROWLOCKING_LOCK_ON_UPDATE
SE_ROWLOCKING_UNLOCK_ON_QUERY
SE_ROWLOCKING_UNLOCK_ON_UPDATE
SE_ROWLOCKING_FILTER_MY_LOCKS
SE_ROWLOCKING_FILTER_OTHER_LOCKS
SE_ROWLOCKING_FILTER_UNLOCKED
SE_ROWLOCKING_LOCK_ONLY
SE_OBJECTLOCK_NO_LOCK_SET
(99)
SE_OBJECTLOCK_SHARED_LOCK
SE_OBJECTLOCK_EXCLUSIVE_LOCK
SE_OBJECTLOCK_EXCLUSIVE_AUTOLOCK
(2)
/*****************************/
SE_VERSION_SHARED_LOCK
SE_VERSION_EXCLUSIVE_LOCK
SE_VERSION_EXCLUSIVE_AUTOLOCK
Trace
Mode
SE_TRACE_API_BRIEF
(1<<0)
SE_TRACE_API_VERBOSE
SE_TRACE_TIME_MINSEC
SE_TRACE_TIME_HRMINSEC
SE_TRACE_FLUSH
SE_TRACE_CLIENT_SIDE
SE_TRACE_SRVR_SIDE
XML
TAG
DATA
SE_XML_INDEX_STRING_TYPE
/*
index
type.
SE_XML_INDEX_DOUBLE_TYPE
numeric
SE_XML_INDEX_TEMPLATE
SE_XML_INDEX_DEFINITION
SE_XML_INDEX_AUTO
/*********************************/
Raster
Interleave
<a
name=SE_RASTER_INTERLEAVE_TYPE>typedef enum {
SE_RASTER_INTERLEAVE_BIP, /* interleave by pixel */
SE_RASTER_INTERLEAVE_BIL, /* interleave by line */
SE_RASTER_INTERLEAVE_BSQ /* band sequential */
} SE_RASTER_INTERLEAVE_TYPE;
/*********************************/
/*** Interpolation Methods ***/
/*********************************/
typedef enum {
SE_INTERPOLATION_NONE, /* no interpolation */
SE_INTERPOLATION_NEAREST, /* nearest-neighbor interpolation */
SE_INTERPOLATION_BILINEAR, /* bilinear interpolation */
SE_INTERPOLATION_BICUBIC /* bicubic interpolation */
} SE_INTERPOLATION_TYPE;
/********************************/
/*** Raster Callback Function ***/
/********************************/
typedef LONG (* SE_RASTER_PROC) (
void *user_data,
void **pixels,
LONG *pixels_length,
void **bitmask,
LONG *bitmask_length
);
/********************************/
/*** Bin Function Types ***/
/********************************/
typedef enum {
SE_BIN_FUNCTION_NONE = 0,
SE_BIN_FUNCTION_AUTO,
SE_BIN_FUNCTION_DIRECT,
SE_BIN_FUNCTION_LINEAR,
SE_BIN_FUNCTION_LOGARITHM,
SE_BIN_FUNCTION_EXPLICIT
} SE_BIN_FUNCTION_TYPE;
/********************************/
/*** Raster Colormap Types ***/
/********************************/
typedef enum {
SE_COLORMAP_NONE = 0,
SE_COLORMAP_RGB,
SE_COLORMAP_RGBA
} SE_COLORMAP_TYPE;
/********************************/
/*** Colormap's Data Types ***/
/********************************/
typedef enum {
SE_COLORMAP_DATA_BYTE,
SE_COLORMAP_DATA_SHORT
} SE_COLORMAP_DATA_TYPE;
/********************************/
/*** Raster Mosaic Mode ***/
/********************************/
#define SE_MOSAIC_MODE_NONE 0
#define SE_MOSAIC_MODE_MERGE 1
#define SE_MOSAIC_MODE_DELETE 2
/***************************************************************************/
/*** function_id Constants(total 50 function constants). ***/
/***************************************************************************/
/* The string functions */
typedef enum {
SE_DBMS_FUNCTION_UPPERCASE, /* 0:Returns char in upper case */
SE_DBMS_FUNCTION_LOWERCASE, /* 1:Returns char in lower case */
SE_DBMS_FUNCTION_CONCAT, /* 2:Returns char1 concatenated with char2 */
SE_DBMS_FUNCTION_ASCII, /* 3:Returns decimal representation of char c */
SE_DBMS_FUNCTION_LENGTH, /* 4:Return length in CHAR */
SE_DBMS_FUNCTION_LENGTHB, /* 5:Returns length in bytes */
SE_DBMS_FUNCTION_CHR, /* 6:Returns the character of the binary equivalent */
SE_DBMS_FUNCTION_LTRIM, /* 7:remove spaces from the left */
SE_DBMS_FUNCTION_RTRIM, /* 8:remove trailing from the right */
SE_DBMS_FUNCTION_SUBSTR, /* 9:Returns a portion of char at M and N c long */
SE_DBMS_FUNCTION_SUBSTRB, /* 10:Returns a portion of byes at m and n bytes long */
SE_DBMS_FUNCTION_SOUNDEX, /* 11:Returns a char containing the phonetic representation of char2 */
SE_DBMS_FUNCTION_TRANSLATE, /* 12:Returns char with each char in from replaced by its corresponding char in to */
SE_DBMS_FUNCTION_TRIM, /* 13:strip the leading, trailing, * or both from the string */
SE_DBMS_FUNCTION_CEIL, /* 14:Returns smallest integer >= n */
SE_DBMS_FUNCTION_FLOOR, /* 15:Returns largest integer <= n
*/
SE_DBMS_FUNCTION_ROUND,
/*
16:Returns
rounded
to
m
place
of
SE_DBMS_FUNCTION_LN,
17:Returns
natural
logarithm
SE_DBMS_FUNCTION_LOG10,
18:Returns
base
10
SE_DBMS_FUNCTION_LOG,
19:Returns
SE_DBMS_FUNCTION_MOD,
20:Returns
the
reminder
divided
by
SE_DBMS_FUNCTION_POWER,
21:Returns
power
SE_DBMS_FUNCTION_SIGN,
22:Returns
-1
for
negative
and
0
zero
1
positive
SE_DBMS_FUNCTION_TRUNC,
23:Returns
truncted
decimal
SE_DBMS_FUNCTION_SINH,
24:Returns
hyperbolic
sine
x
SE_DBMS_FUNCTION_COSH,
25:Returns
cosine
SE_DBMS_FUNCTION_TANH,
26:Returns
tangent
SE_DBMS_FUNCTION_ASIN,
27:Returns
arcsine
SE_DBMS_FUNCTION_ACOS,
28:Returns
arccosine
SE_DBMS_FUNCTION_ATAN,
29:Returns
arctangent
SE_DBMS_FUNCTION_HEX,
30:Returns
hexadecimal
representation
a
SE_DBMS_FUNCTION_SIN,
31:Returns
SE_DBMS_FUNCTION_COS,
32:Returns
SE_DBMS_FUNCTION_TAN,
33:Returns
SE_DBMS_FUNCTION_EXTRACT,
34:Returns
numeric
value
date
SE_DBMS_FUNCTION_BITLEN,
35:Returns
string
length
in
bits
SE_DBMS_FUNCTION_POSITION,
36:Returns
indicates
starting
position
search
source
SE_DBMS_FUNCTION_ABS,
37:Returns
absolute
SE_DBMS_FUNCTION_VARIANCE,
38:Returns
variance
SE_DBMS_FUNCTION_STDDEV,
39:Returns
standard
deviation
SE_DBMS_FUNCTION_AVG,
40:Returns
average
SE_DBMS_FUNCTION_COUNT,
41:Returns
number
rows
query
SE_DBMS_FUNCTION_MAX,
42:Returns
maximum
expression
SE_DBMS_FUNCTION_MIN,
43:Returns
minimum
SE_DBMS_FUNCTION_SUM,
44:Returns
sum
values
SE_DBMS_FUNCTION_COALSCE,
45:Returns
first
NOT_NULL
SE_DBMS_FUNCTION_CONVERT,
46:The
convert
function
SE_DBMS_FUNCTION_CAST,
47:Converts
one
data
type
another
SE_DBMS_FUNCTION_USER
48:Returns
current
user
name=SE_BUILD_MODE
}
SE_SQL_FUNCTION;
SQL
special
characters
DBMSs
typedef
enum
{
SE_SQL_WILDCARD_MANYMATCH_CHAR="49,"
always
start
from
total
constants
SE_SQL_WILDCARD_SINGLEMATCH_CHAR,
SE_SQL_DELIMITED_CHAR_PREFIX,
SE_SQL_DELIMITED_CHAR_SUFFIX,
SE_SQL_DEFAULT_ESCAPE_CHAR_PREFIX,
SE_SQL_DEFAULT_ESCAPE_CHAR_SUFFIX,
SE_SQL_ESCAPE_CLAUSE_PREFIX,
SE_SQL_ESCAPE_CLAUSE_SUFFIX
SE_SQL_SPECIAL_CHARACTER;
Sublineage
SE_SUBLINEAGE_SOURCE,
SE_SUBLINEAGE_DIFF,
SE_SUBLINEAGE_PAST,
SE_LINEAGE_SOURCE,
SE_LINEAGE_DIFF,
SE_LINEAGE_NONE
SE_LINEAGE_TYPES;
/***************************************************************************/
/***
annotation
alignment
***/
#define
SE_ANNO_ALIGN_DEFAULT
SE_ANNO_ALIGN_LEFT
SE_ANNO_ALIGN_RIGHT
2
SE_ANNO_ALIGN_CENTER
3
SE_ANNO_ALIGN_AUTOMATIC
4
Shape
Types
(Re)Definitions
(see
sg.h
full
definition)
SgSimpleShapePoint
SE_POINT;
SgShapePoint
SE_SDEPOINT;
SgShapeEnvelope
SE_ENVELOPE;
SgCoordRef
SE_COORDREF;
struct
LFLOAT
minz;
minm;
maxz;
maxm;
SE_ZMEXTENT;
/**************************/
Build
Modes
<a>typedef enum {
SE_Build_Polygons_From_All_Rings = 0,
SE_Build_Polygons_From_Clockwise_Rings = 3,
SE_Build_Polygons_From_CounterClockwise_Rings = 2,
SE_Build_SimpleLines = 4,
/* The following codes are obsolete, and are only included for backwards
compatibility. */
SE_Build_Clockwise_Polygons = 0,
SE_Build_CounterClockwise_Polygons = 1,
SE_Build_Forward_Polygons = 2,
SE_Build_Backward_Polygons = 3
} SE_BUILD_MODE;
/****************************/
/*** Shape Rotation Modes ***/
/****************************/
typedef enum {
SE_DEFAULT_ROTATION,
SE_LEFT_HAND_ROTATION,
SE_RIGHT_HAND_ROTATION
} SE_ROTATION_TYPE;
/*******************************/
/*** Transformation Types ***/
/*******************************/
typedef enum {
SE_TRANSFORM_UNKNOWN = 0,
SE_TRANSFORM_PLANER,
SE_TRANSFORM_PROJECTIVE,
SE_TRANSFORM_POLYNOMIAL,
SE_TRANSFORM_CUSTOM
} SE_TRANSFORM_TYPE;
typedef enum {
SE_POLYNOMIAL_1ST_ORDER = 0,
SE_POLYNOMIAL_2ND_ORDER,
SE_POLYNOMIAL_3RD_ORDER
} SE_POLYNOMIAL_TYPE;
/************************************************************
*** LOG FILE TYPES
************************************************************/
typedef int SE_LOG;
typedef struct _SE_LogFile *SE_LOGINFO;
/************************************************************
*** SDE BLOB ATTRIBUTE STRUCTURE "SE_BLOB_INFO"
************************************************************/
typedef struct {
LONG blob_length; /* LENGTH IN BYTES OF BLOB */
CHAR *blob_buffer; /* LINEAR BUFFER OF BLOB DATA */
} SE_BLOB_INFO;
typedef struct {
LONG clob_length; /* LENGTH IN BYTES OF CLOB */
CHAR *clob_buffer; /* LINEAR BUFFER OF CLOB DATA */
} SE_CLOB_INFO;
typedef struct {
LONG nclob_length; /* LENGTH IN BYTES OF NCLOB */
SE_WCHAR *nclob_buffer; /* LINEAR BUFFER OF NCLOB DATA */
} SE_NCLOB_INFO;
/************************************************************
*** SDE COLUMN DEFINITION STRUCTURE "SE_COLUMN_DEF"
************************************************************/
typedef struct {
CHAR column_name[SE_MAX_COLUMN_LEN]; /* the column name */
LONG sde_type; /* the SDE data type */
LONG size; /* the size of the column values */
SHORT decimal_digits; /* number of digits after decimal */
BOOL nulls_allowed; /* allow NULL values ? */
SHORT row_id_type; /* column's use as table's row id */
} SE_COLUMN_DEF;
/************************************************************
*** SDE SSA INPUT DEFINITION STRUCTURE "SE_INPUT_DESC"
************************************************************/
typedef struct {
LONG sde_type; /* the SDE data type */
LONG size; /* the size of the input values */
} SE_INPUT_DESC;
/************************************************************
*** SDE SQL CONSTRUCTOR
************************************************************/
typedef struct {
LONG num_tables; /* number of tables */
CHAR **tables; /* table names */
CHAR *where; /* where clause */
} SE_SQL_CONSTRUCT;
/************************************************************
*** SDE INDEX DESCRIPTION STRUCTURE "SE_INDEX_DEF"
************************************************************/
typedef struct {
SHORT num_columns; /* number of columns */
CHAR **column_name; /* the column name */
CHAR index_name[SE_MAX_COLUMN_LEN]; /* the index name */
BOOL unique; /* unique index */
BOOL *ascending; /* ascending order */
} SE_INDEX_DEF;
/************************************************************
*** SDE POINT TABLE STRUCTURES
************************************************************/
typedef struct _SE_PointTable *SE_PTABLE;
typedef struct
{
LFLOAT x, y, z;
ULONG mask;
} SE_SNAPPED_POINT;
/************************************************************
*** SDE RELEASE/VERSION STRUCTURE
************************************************************/
typedef struct
{
LONG major; /* Major release */
LONG minor; /* Minor release */
LONG bug; /* Bug version */
CHAR desc[96]; /* Description */
LONG release; /* Release Number */
LONG rel_low_supported; /* Lowest Release supported */
} SE_RELEASE;
/************************************************************
*** SE_QUERYFROM JOIN TYPES
************************************************************/
typedef enum
{
SE_INNER_JOIN = 1
} SE_JOIN_TYPE;
/************************************************************
*** SE_QUERYFROM JOIN CONSTRAINTS
************************************************************/
typedef enum
{
SE_JOIN_ON = 1
} SE_JOIN_CONSTRAINT;
/************************************************************
*** SDE SHAPE HANDLE
************************************************************/
typedef struct _SE_ShapeRecord *SE_SHAPE;
/************************************************************
*** SDE ANNOTATION HANDLE
************************************************************/
typedef struct _SE_AnnoRecord *SE_ANNO;
/************************************************************
*** SDE EXTERNAL DATA FILE HANDLE
************************************************************/
typedef struct _SE_ExternalFileInfo *SE_FILEINFO;
/************************************************************
*** SDE LAYER HANDLE
************************************************************/
typedef struct _SE_LayerRecord *SE_LAYERINFO;
/************************************************************
*** SDE METADATA HANDLE
************************************************************/
typedef struct _SE_MetaData *SE_METADATAINFO;
/************************************************************
*** SDE REGISTRATION HANDLE
************************************************************/
typedef struct _SE_Registration *SE_REGINFO;
/************************************************************
*** SDE VERSION HANDLE
************************************************************/
typedef struct _SE_VersionRecord *SE_VERSIONINFO;
/************************************************************
*** SDE STATE HANDLE
************************************************************/
typedef struct _SE_StateRecord *SE_STATEINFO;
/************************************************************
*** SDE LOCATOR HANDLE
************************************************************/
typedef struct _SE_Locator *SE_LOCATORINFO;
/************************************************************
*** SDE OBJECTLOCK HANDLE
************************************************************/
typedef struct _SE_ObjectLock *SE_OBJECTLOCKINFO;
/************************************************************
*** SDE CONNECTION HANDLE
************************************************************/
typedef struct _SE_ClientRecord *SE_CONNECTION;
/************************************************************
*** SDE STREAM HANDLE
************************************************************/
typedef struct _SE_StreamRecord *SE_STREAM;
/************************************************************
*** SDE UUID GENERATOR HANDLE
************************************************************/
typedef struct _SE_UUIDsysRecord *SE_UUIDGENERATOR;
/************************************************************
*** SDE XML TAG HANDLE
************************************************************/
typedef struct _SE_XmlTagInfo *SE_XMLTAGINFO;
/************************************************************
*** SDE XML INDEX HANDLE
************************************************************/
typedef struct _SE_XmlIndexInfo *SE_XMLINDEXINFO;
/************************************************************
*** SDE XML COLUMN HANDLE
************************************************************/
typedef struct _SE_XmlColumnInfo *SE_XMLCOLUMNINFO;
/************************************************************
*** SDE XML DOCUMENT HANDLE
************************************************************/
typedef struct _SE_XmlDoc *SE_XMLDOC;
/************************************************************
*** SDE REGISTERED COLUMN HANDLE
************************************************************/
typedef struct _SE_RegisteredColumn *SE_COLUMNINFO;
/************************************************************
*** SDE SERVER INFORMATION HANDLE
************************************************************/
typedef struct _SE_ServerinfoRecord *SE_SERVERINFO;
/************************************************************
*** SDE XML CONSTRAINT HANDLE
************************************************************/
typedef struct _SE_XMLConstraint *SE_XMLCONSTRAINT;
/************************************************************
*** SDE SHAPE SOURCE HANDLE
************************************************************/
typedef struct _SE_ShapeSource *SE_SHAPESOURCE;
/************************************************************
*** SDE SPATIAL CONSTRAINT HANDLE
************************************************************/
typedef struct _SE_SpatialConstraint *SE_SPATIALCONSTRAINT;
/************************************************************
*** SDE ATTRIBUTE CONSTRAINT HANDLE
************************************************************/
typedef struct _SE_AttributeConstraint *SE_ATTRIBUTECONSTRAINT;
/************************************************************
*** SDE ATTRIBUTE CONSTRAINT HANDLE
************************************************************/
typedef struct _SE_RasterConstraintRecord *SE_RASTERCONSTRAINT;
/************************************************************
*** SDE QUERY WHERE HANDLE
************************************************************/
typedef struct _SE_QueryWhere *SE_QUERYWHERE;
/************************************************************
*** SDE QUERY TABLE HANDLE
************************************************************/
typedef struct _SE_QueryTable *SE_QUERYTABLE;
/************************************************************
*** SDE QUERY FROM HANDLE
************************************************************/
typedef struct _SE_QueryFrom *SE_QUERYFROM;
/************************************************************
*** SDE QUERY COLUMN HANDLE
************************************************************/
typedef struct _SE_QueryColumn *SE_QUERYCOLUMN;
/************************************************************
*** SDE QUERY SELECT HANDLE
************************************************************/
typedef struct _SE_QuerySelect *SE_QUERYSELECT;
/************************************************************
*** SDE QUERY HANDLE
************************************************************/
typedef struct _SE_QueryInfo *SE_QUERYINFO;
/************************************************************
*** SDE TRANSFORM HANDLE
************************************************************/
typedef struct _SE_TransformRecord *SE_TRANSFORMINFO;
/************************************************************
*** SDE SPATIAL FILTER STRUCTURE
************************************************************/
typedef struct {
CHAR table[SE_QUALIFIED_TABLE_NAME]; /* the spatial table name */
CHAR column[SE_MAX_COLUMN_LEN]; /* the spatial column name */
LONG filter_type; /* the type of spatial filter */
union
{
SE_SHAPE shape; /* a shape object */
struct
{
LONG id; /* A SDE_ROW_ID id for a shape */
CHAR table[SE_QUALIFIED_TABLE_NAME]; /* The shape's spatial table */
} id;
} filter;
LONG method; /* the search method to satisfy */
BOOL truth; /* TRUE to pass the test, FALSE if it must NOT pass */
char *cbm_source ; /* set ONLY if the method is SM_CBM */
UCHAR *cbm_object_code ; /* internal system use only */
} SE_FILTER;
/************************************************************
*** SDE STREAM SPECIFICATION
************************************************************/
typedef struct {
LONG min_size; /* minimum size of buffer */
LONG max_size; /* total size of buffer */
LONG min_objects; /* minimum number of objects to put in buffer */
LONG max_array_size; /* maximum number of elements per array */
LONG attribute_bytes; /* attribute array buffer size */
LONG shape_point_bytes; /* shape geometry array buffer size */
LONG blob_bytes; /* obsolete as of ArcSDE 8.0.2 */
LONG max_bytes_per_blob; /* obsolete as of ArcSDE 8.0.2 */
LONG stream_pool_size; /* minimum # of streams to keep in the pool */
LONG raster_buf_size; /* raster buffer size */
} SE_STREAM_SPEC;
/* Stream info structure passed to SSA at initialization time. */
typedef struct _SE_StreamInfo {
SE_STREAM_SPEC stream_spec; /* Stream settings. */
SE_LOG logfile; /* Output logfile handle. */
BOOL logfile_only; /* Don't return rows, only log rows. */
LONG rowlock_action; /* Automatic row locking rule. */
const SE_FILTER *spatial_filters; /* Current spatial filters. */
SHORT num_filters; /* Number of spatial filters. */
BOOL buffered_write; /* Buffered I/O on or off. */
LONG state_id; /* Current state id. */
LONG difference_id; /* Current difference id. */
LONG difference_type; /* Current difference type. */
} SE_STREAM_INFO;
/************************************************************
*** SDE STATISTICS STRUCTURES
************************************************************/
typedef struct {
LONG freq; /* frequency of value */
union {
CHAR *str_val; /* SE_STRING_TYPE value */
LONG int_val; /* SE_INTEGER_TYPE value */
LFLOAT double_val; /* SE_DOUBLE_TYPE value */
struct tm date_val; /* SE_DATE_TYPE value */
SE_WCHAR *wstr_val; /* SE_NSTRING_TYPE value */
}uval;
} SE_VALUE;
typedef struct {
LONG num_distinct; /* number of distinct values */
LONG type; /* value type */
SE_VALUE *values; /* array of counts and union'ed values */
} SE_DISTINCT;
typedef struct {
LONG count; /* number of rows */
LFLOAT min; /* minimum value */
LFLOAT average; /* average value */
LFLOAT max; /* maximum value */
LFLOAT std_dev; /* standard deviation */
SE_DISTINCT *distinct; /* distinct info */
} SE_STATS;
/************************************************************
*** SDE ERROR STRUCTURE
************************************************************/
typedef struct {
LONG sde_error; /* SDE error code */
LONG ext_error; /* DBMS or OS errno code */
CHAR err_msg1[SE_MAX_MESSAGE_LENGTH]; /* DBMS or SE_error_get_string
msg */
CHAR err_msg2[SE_MAX_SQL_MESSAGE_LENGTH];/* Second DBMS error, if
applicable */
} SE_ERROR;
/************************************************************
*** SDE FEATURE TABLE STRUCTURES
************************************************************/
typedef struct _SE_STableRec *SE_STABLE;
/************************************************************
*** SE_layer_statistics STRUCTURES
************************************************************/
typedef struct {
LONG features; /* Features indexed by this grid level. */
LONG indexRecords; /* Index records in this grid level. */
LONG groupCounts[8]; /* Index rec count by group: <=4,>4, >10, >25,
>50, >100, >250, >500. */
LONG maxFPG; /* Maximum number of features per grid cell. */
LONG gridCells; /* # of grid cells in this level. */
LONG featuresInside1; /* # of features wholly inside one grid cell. */
} SE_GRID_STATS;
typedef struct {
CHAR table[SE_QUALIFIED_TABLE_NAME]; /* Spatial table. */
CHAR column[SE_MAX_COLUMN_LEN]; /* Spatial column. */
LONG nGrids; /* # of spatial index grids. */
SE_GRID_STATS grids[3]; /* Individual grid stats. */
} SE_SI_STATS;
typedef struct { /*** Layer statistics structure. ***/
LONG layer_id; /* Layer id. */
LONG NILs; /* # of Nil shapes in layer. */
LONG POINTs,MultiPOINTs; /* # of Point and Multipoints in layer. */
LONG LINEs,MultiLINEs; /* # of Lines & Multilines in layer. */
LONG SIMPLE_LINEs,MultiSIMPLE_LINEs; /* # of Simple Lines &
Simple Multilines. */
LONG AREAs,MultiAREAs; /* # of Area and Multiareas in layer. */
LONG TotalFeatures; /* Total # of shapes in layer. */
SE_ENVELOPE bounds; /* Layer extrema. */
LONG lastModified; /* POSIX time_t date last modified.*/
LONG minFid,maxFid; /* Minimum and maximum IDs in layer. */
LONG minPoints,maxPoints;/* Min/max # of pts in layer shapes. */
LFLOAT minArea,maxArea; /* Min and max area shape areas. */
LFLOAT minLength,maxLength;/* Min and max linear shape lengths. */
LFLOAT averagePoints; /* Average number of points/shape. */
LFLOAT averageArea; /* Average area/shape. */
LFLOAT averageLength; /* Average length/shape. */
} SE_LAYER_STATS;
/************************************************************
*** SDE LAYER LOCKS STRUCTURES
************************************************************/
typedef struct {
CHAR username[SE_MAX_OWNER_LEN + 4];
LONG lock_type;
SE_ENVELOPE bounds;
} SE_LAYER_LOCKS;
/************************************************************
*** SDE TABLE LOCKS STRUCTURES
************************************************************/
typedef struct {
CHAR username[SE_MAX_OWNER_LEN + 4];
LONG lock_type;
} SE_TABLE_LOCK;
/************************************************************
*** SDE VERSION LOCK STRUCTURES
************************************************************/
typedef struct {
CHAR username[SE_MAX_OWNER_LEN + 4];
LONG lock_mode;
} SE_VERSION_LOCK;
/************************************************************
*** SDE INSTANCE STRUCTURES
************************************************************/
typedef struct {
SE_RELEASE version; /* Release version of specified instance. */
LONG connections; /* Number of current connections to SDE on node.*/
LONG system_mode; /* Accepting connections or blocking. */
} SE_INSTANCE_STATUS;
typedef struct {
LONG svrpid; /* Forked Server Task pid */
LONG cstime; /* Connection Start time */
BOOL xdr_needed; /* Use XDR Boolean */
CHAR sysname[SE_MAX_OWNER_LEN + 1]; /* Client Operating System Name */
CHAR nodename[SE_MAX_OWNER_LEN + 1]; /* Client Host Node Name */
CHAR username[SE_MAX_OWNER_LEN + 1]; /* User Name */
} SE_INSTANCE_USER;
/* For future developments, please do not use the structure
SE_INSTANCE_CONFIG and API SE_instance_configuration() for
instance/server configuration info. They are provided only for
backward compatibility and will be deprecated for the post
9.0 releases. Instead, please use SE_SERVERINFO structure
and SE_instance_serverconfig_get_info() API respectively. */
typedef struct {
LONG max_connections;
LONG max_locks;
LONG max_state_locks;
LONG max_table_locks;
LONG max_object_locks;
LONG child_timeout;
LONG min_net_block_size;
LONG max_net_block_size;
LONG min_net_obj_count;
LONG max_mem_dissolve;
LONG max_blob_size;
LONG max_mem_blob;
LONG auto_commit_freq;
LONG max_init_feats;
LONG max_distinct;
LONG max_streams;
LONG stream_pool_size;
LONG max_layers;
LONG max_registrations;
LONG max_rastercolumns;
LONG shape_point_buf_size;
LONG attribute_buf_size;
LONG blob_buf_size;
LONG raster_buf_size;
LONG max_array_size;
LONG max_array_bytes;
LONG max_time_diff;
CHAR home_path[SE_MAX_PATH_LEN]; /* PATH TO SDE HOME DIR */
CHAR log_path[SE_MAX_PATH_LEN]; /* PATH TO SDE LOG FILE DIR */
CHAR tmp_path[SE_MAX_PATH_LEN]; /* PATH TO SDE TEMP FILE DIR */
LONG dbms_id; /* Underlying DBMS ID. */
LONG dbms_properties; /* DBMS properties. */
LONG client_count; /* Connection count */
BOOL state_caching;
BOOL tcp_keepalive;
BOOL instance_read_only;
LONG default_precision;
BOOL state_autolocking;
} SE_INSTANCE_CONFIG;
typedef struct {
LONG pid;
LONG rcount; /* TOT # READS BY PROCESS */
LONG wcount; /* TOT # WRITES BY PROCESS */
LONG opcount; /* TOT # F OPERATIONS BY PROCESS */
LONG numlocks; /* TOT # F LOCKS HELD BY THIS PID */
LONG fb_partial; /* TOT # F PARTIAL SHAPES SHIPPED BY THIS PROCESS */
LONG fb_count; /* TOT # F BUFFERS LOADED BY THIS PROCESS */
LONG fb_fcount; /* TOT # F SHAPES BUFFERED BY THIS PROCESS */
LONG fb_kbytes; /* TOT # F 1K BYTES BUFFERED DATA BY THIS PROCESS */
} SE_INSTANCE_STATS;
typedef struct {
LONG pid;
SHORT layer_id;
LONG lock_type;
} SE_INSTANCE_LOCK;
typedef struct _SE_InstanceStateLock {
LONG pid; /* Gsrvr process id that holds this lock. */
LONG state_id; /* State being locked. */
SHORT lock_type; /* Shared, exclusive or table. */
} SE_INSTANCE_STATE_LOCK;
typedef struct _SE_InstanceTableLock {
LONG pid; /* Gsrvr process id that holds this lock. */
LONG registration_id; /* table being locked. */
SHORT lock_type; /* Shared, exclusive or table. */
} SE_INSTANCE_TABLE_LOCK;
typedef struct _SE_InstanceVersionLock {
LONG pid; /* Gsrvr process id that holds this lock. */
LONG version_id; /* Version being locked. */
SHORT lock_mode; /* Shared or exclusive. */
} SE_INSTANCE_VERSION_LOCK;
/************************************************************
*** Struct to receive shape comparison info.
************************************************************/
typedef struct {
LONG primary_entity_type ;
LONG secondary_entity_type ;
LONG mask ;
LONG sectdims[3][3] ;
} SE_CBM_INFO ;
/************************************************************
*** Struct to receive dbtune table error data.
************************************************************/
typedef struct {
CHAR keyword[SE_MAX_CONFIG_KEYWORD_LEN];
CHAR parameter_name[SE_MAX_CONFIG_KEYWORD_LEN];
CHAR config_string[SE_MAX_CONFIG_STR_LEN];
} SE_DBTUNE;
/************************************************************
*** Struct to receive server_config table error data.
************************************************************/
typedef struct {
CHAR prop_name [SE_MAX_PROP_NAME_LEN];
CHAR char_prop_value[SE_MAX_PROP_VAL_LEN];
LONG num_prop_value;
} SE_SVR_CONFIG_ERR;
/*****************************************************************************
** Spatial Database Engine API Prototypes
**
*****************************************************************************/
#ifdef WIN32
#define SDEAPI __stdcall
#else
#define SDEAPI
#endif
/*
* ==========================================================================
*
* THE FOLLOWING FUNCTIONS ARE FOR PUBLIC USE.
*
* ==========================================================================
*/
/* Annotation object functions */
extern LONG SDEAPI SE_anno_create (SE_ANNO *anno);
extern LONG SDEAPI SE_anno_duplicate( const SE_ANNO src_anno,
SE_ANNO tgt_anno);
extern void SDEAPI SE_anno_free (SE_ANNO anno);
extern LONG SDEAPI SE_anno_get_alignment (const SE_ANNO anno,
LONG *alignment);
extern LONG SDEAPI SE_anno_get_justification (const SE_ANNO anno,
LONG *justification);
extern LONG SDEAPI SE_anno_get_leader (const SE_ANNO anno,
SE_SHAPE leader);
extern LONG SDEAPI SE_anno_get_level (const SE_ANNO anno,
LONG *level);
extern LONG SDEAPI SE_anno_get_offset (const SE_ANNO anno,
LFLOAT *x_offset,
LFLOAT *y_offset);
extern LONG SDEAPI SE_anno_get_placement (const SE_ANNO anno,
SE_SHAPE placement);
extern LONG SDEAPI SE_anno_get_symbol (const SE_ANNO anno,
&nbs