Files correlati : Commento : - Creazione nuova cartella per contenere tutte le librerie esterne - Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
1953 lines
55 KiB
C
1953 lines
55 KiB
C
/*
|
|
** SAP Open Client/Server
|
|
** Copyright (c) 2013 SAP AG or an SAP affiliate company. All rights reserved.
|
|
*/
|
|
#ifndef __CSPUBLIC_H__
|
|
#define __CSPUBLIC_H__
|
|
|
|
#include <string.h>
|
|
|
|
/*
|
|
** Include the core header files. These files contain the defines and
|
|
** data structures that are shared by all libraries.
|
|
*/
|
|
#ifndef __NO_INCLUDE__
|
|
#include <cstypes.h>
|
|
#include <sqlca.h>
|
|
#endif /* __NO_INCLUDE__ */
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Size defines used in client/server applications.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** Defines for the safe string funtions.
|
|
*/
|
|
#define CS_STRLCPY cs_strlcpy
|
|
#define CS_STRLCAT cs_strlcat
|
|
#define CS_SNPRINTF cs_snprintf
|
|
|
|
/*
|
|
** Define the maximum size of a fully qualified table name.
|
|
*/
|
|
#define CS_OBJ_NAME (CS_INT)((CS_MAX_NAME * 3) + 4)
|
|
|
|
/*
|
|
** The maximum number of bytes in the server message or error message
|
|
** stored in the CS_SERVERMSG and CS_CLIENTMSG structures. If the total
|
|
** message is longer than this, multiple structures will be passed to the
|
|
** application program.
|
|
*/
|
|
#define CS_MAX_MSG (CS_INT)1024
|
|
|
|
/*
|
|
** The maximum number of bytes in a SAP timestamp.
|
|
*/
|
|
#define CS_TS_SIZE (CS_INT)8
|
|
|
|
/*
|
|
** The maximum number of bytes in SAP text pointers.
|
|
*/
|
|
#define CS_TP_SIZE (CS_INT)16
|
|
|
|
/*
|
|
** The size of the sqlstate array in the CS_SERVERMSG and CS_CLIENTMSG
|
|
** structures. Please note that this size is 2 bytes greater than what the
|
|
** standard specifies. Users should look at only the first 6 bytes in
|
|
** the array. That last 2 bytes are reserved to insure modulo 4 byte
|
|
** structure alignment.
|
|
*/
|
|
#define CS_SQLSTATE_SIZE (CS_INT)8
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Defines passed into Open Client/Server APIs.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** Define all the library versions currently supported.
|
|
** If compile flag 'CS_NO_LARGE_IDENTIFIERS' is set, we need to use
|
|
** the old values for CS_VERSION_xxx for compatibility reasons.
|
|
** The compile flag 'CS_NO_LARGE_IDENTIFIERS' isn't supported anymore
|
|
** as of CS_VERSION_155.
|
|
** We want the compiler to return errors when the CS_NO_LARGE_IDENTIFIERS
|
|
** flag is used with versions >= CS_VERSION_155
|
|
*/
|
|
#ifdef CS_NO_LARGE_IDENTIFIERS
|
|
#define CS_VERSION_100 (CS_INT)112
|
|
#define CS_VERSION_110 (CS_INT)1100
|
|
#define CS_VERSION_120 CS_VERSION_110
|
|
#define CS_VERSION_125 (CS_INT)12500
|
|
#define CS_VERSION_150 (CS_INT)15000
|
|
#else
|
|
#define CS_VERSION_100 (CS_INT)113
|
|
#define CS_VERSION_110 (CS_INT)1101
|
|
#define CS_VERSION_120 CS_VERSION_110
|
|
#define CS_VERSION_125 (CS_INT)12501
|
|
#define CS_VERSION_150 (CS_INT)15001
|
|
#define CS_VERSION_155 (CS_INT)15501
|
|
#define CS_VERSION_157 (CS_INT)15701
|
|
#define CS_VERSION_160 (CS_INT)16001
|
|
#endif /* CS_NO_LARGE_IDENTIFIERS */
|
|
|
|
#define CS_CURRENT_VERSION CS_VERSION_160
|
|
|
|
/*
|
|
** Action flags used.
|
|
** CS_CACHE currently only used by OMI apis
|
|
*/
|
|
#define CS_GET (CS_INT)33
|
|
#define CS_SET (CS_INT)34
|
|
#define CS_CLEAR (CS_INT)35
|
|
#define CS_INIT (CS_INT)36
|
|
#define CS_STATUS (CS_INT)37
|
|
#define CS_MSGLIMIT (CS_INT)38
|
|
#define CS_SEND (CS_INT)39
|
|
#define CS_SUPPORTED (CS_INT)40
|
|
#define CS_CACHE (CS_INT)41
|
|
|
|
/*
|
|
** Bind indicator values. These are preferred when passing data into
|
|
** Client Library or Server Library, since they add the appropriate cast.
|
|
*/
|
|
#define CS_GOODDATA (CS_SMALLINT)0
|
|
#define CS_NULLDATA (CS_SMALLINT)(-1)
|
|
|
|
/*
|
|
** Define ct_debug() operations.
|
|
*/
|
|
#define CS_SET_FLAG (CS_INT)1700
|
|
#define CS_CLEAR_FLAG (CS_INT)1701
|
|
#define CS_SET_DBG_FILE (CS_INT)1702
|
|
#define CS_SET_PROTOCOL_FILE (CS_INT)1703
|
|
|
|
/*
|
|
** Define ct_debug() types of trace information.
|
|
*/
|
|
#define CS_DBG_ALL (CS_INT)0x1
|
|
#define CS_DBG_ASYNC (CS_INT)0x2
|
|
#define CS_DBG_ERROR (CS_INT)0x4
|
|
#define CS_DBG_MEM (CS_INT)0x8
|
|
#define CS_DBG_PROTOCOL (CS_INT)0x10
|
|
#define CS_DBG_PROTOCOL_STATES (CS_INT)0x20
|
|
#define CS_DBG_API_STATES (CS_INT)0x40
|
|
#define CS_DBG_DIAG (CS_INT)0x80
|
|
#define CS_DBG_NETWORK (CS_INT)0x100
|
|
#define CS_DBG_API_LOGCALL (CS_INT)0x200
|
|
#define CS_DBG_CTL_INFO (CS_INT)0x400
|
|
#define CS_DBG_SSL (CS_INT)0x800
|
|
|
|
/*
|
|
** Cancel types.
|
|
*/
|
|
#define CS_CANCEL_CURRENT (CS_INT)6000
|
|
#define CS_CANCEL_ALL (CS_INT)6001
|
|
#define CS_CANCEL_ATTN (CS_INT)6002
|
|
#define CS_CANCEL_ABORT_NOTIF (CS_INT)6003
|
|
|
|
/*
|
|
** Cursor fetch options.
|
|
*/
|
|
#define CS_FIRST (CS_INT)3000
|
|
#define CS_NEXT (CS_INT)3001
|
|
#define CS_PREV (CS_INT)3002
|
|
#define CS_LAST (CS_INT)3003
|
|
#define CS_ABSOLUTE (CS_INT)3004
|
|
#define CS_RELATIVE (CS_INT)3005
|
|
|
|
/*
|
|
** Op codes used in cs_calc().
|
|
*/
|
|
#define CS_ADD (CS_INT)1
|
|
#define CS_SUB (CS_INT)2
|
|
#define CS_MULT (CS_INT)3
|
|
#define CS_DIV (CS_INT)4
|
|
#define CS_ZERO (CS_INT)5
|
|
|
|
/*
|
|
** The cs_dt_info() types.
|
|
*/
|
|
#define CS_MONTH (CS_INT)7340
|
|
#define CS_SHORTMONTH (CS_INT)7341
|
|
#define CS_DAYNAME (CS_INT)7342
|
|
#define CS_DATEORDER (CS_INT)7343
|
|
#define CS_12HOUR (CS_INT)7344
|
|
#define CS_DT_CONVFMT (CS_INT)7345
|
|
|
|
/*
|
|
** The cs_strcmp() options.
|
|
*/
|
|
#define CS_COMPARE (CS_INT)7440
|
|
#define CS_SORT (CS_INT)7441
|
|
|
|
/*
|
|
** Callback types.
|
|
*/
|
|
#define CS_COMPLETION_CB (CS_INT)1
|
|
#define CS_SERVERMSG_CB (CS_INT)2
|
|
#define CS_CLIENTMSG_CB (CS_INT)3
|
|
#define CS_NOTIF_CB (CS_INT)4
|
|
#define CS_ENCRYPT_CB (CS_INT)5
|
|
#define CS_CHALLENGE_CB (CS_INT)6
|
|
#define CS_DS_LOOKUP_CB (CS_INT)7
|
|
#define CS_SECSESSION_CB (CS_INT)8
|
|
#define CS_SSLVALIDATE_CB (CS_INT)9
|
|
#define CS_DONEPROC_CB (CS_INT)10
|
|
#define CS_EXTENDED_ENCRYPT_CB (CS_INT)11
|
|
#define CS_DR_MAP_CB (CS_INT)12
|
|
|
|
/*
|
|
** To install a signal callback, the type needs to calculated as an
|
|
** offset of the operating-system-specific signal number and the
|
|
** following define. For example, to install a callback handler for a
|
|
** SIGALRM signal, pass (CS_SIGNAL_CB + SIGALRM) to the ct_callback()
|
|
** routine.
|
|
*/
|
|
#define CS_SIGNAL_CB (CS_INT)100
|
|
|
|
/*
|
|
** Exit and close flags.
|
|
*/
|
|
#define CS_FORCE_EXIT (CS_INT)300
|
|
#define CS_FORCE_CLOSE (CS_INT)301
|
|
|
|
/*
|
|
** ct_diag() and cs_diag() type flags.
|
|
*/
|
|
#define CS_CLIENTMSG_TYPE (CS_INT)4700
|
|
#define CS_SERVERMSG_TYPE (CS_INT)4701
|
|
#define CS_ALLMSG_TYPE (CS_INT)4702
|
|
#define SQLCA_TYPE (CS_INT)4703
|
|
#define SQLCODE_TYPE (CS_INT)4704
|
|
#define SQLSTATE_TYPE (CS_INT)4705
|
|
|
|
/*
|
|
** Compute info types.
|
|
*/
|
|
#define CS_COMP_OP (CS_INT)5350
|
|
#define CS_COMP_ID (CS_INT)5351
|
|
#define CS_COMP_COLID (CS_INT)5352
|
|
#define CS_COMP_BYLIST (CS_INT)5353
|
|
#define CS_BYLIST_LEN (CS_INT)5354
|
|
|
|
/*
|
|
** Compute info operators.
|
|
*/
|
|
#define CS_OP_SUM (CS_INT)5370
|
|
#define CS_OP_AVG (CS_INT)5371
|
|
#define CS_OP_COUNT (CS_INT)5372
|
|
#define CS_OP_MIN (CS_INT)5373
|
|
#define CS_OP_MAX (CS_INT)5374
|
|
|
|
/*
|
|
** Browse types.
|
|
*/
|
|
#define CS_ISBROWSE (CS_INT)9000
|
|
#define CS_TABNUM (CS_INT)9001
|
|
#define CS_TABNAME (CS_INT)9002
|
|
|
|
/*
|
|
** Result types from ct_results().
|
|
*/
|
|
#define CS_ROW_RESULT (CS_INT)4040
|
|
#define CS_CURSOR_RESULT (CS_INT)4041
|
|
#define CS_PARAM_RESULT (CS_INT)4042
|
|
#define CS_STATUS_RESULT (CS_INT)4043
|
|
#define CS_MSG_RESULT (CS_INT)4044
|
|
#define CS_COMPUTE_RESULT (CS_INT)4045
|
|
#define CS_CMD_DONE (CS_INT)4046
|
|
#define CS_CMD_SUCCEED (CS_INT)4047
|
|
#define CS_CMD_FAIL (CS_INT)4048
|
|
#define CS_ROWFMT_RESULT (CS_INT)4049
|
|
#define CS_COMPUTEFMT_RESULT (CS_INT)4050
|
|
#define CS_DESCRIBE_RESULT (CS_INT)4051
|
|
|
|
/*
|
|
** Flags for getting result info using ct_res_info().
|
|
*/
|
|
#define CS_ROW_COUNT (CS_INT)800
|
|
#define CS_CMD_NUMBER (CS_INT)801
|
|
#define CS_NUM_COMPUTES (CS_INT)802
|
|
#define CS_NUMDATA (CS_INT)803
|
|
#define CS_ORDERBY_COLS (CS_INT)804
|
|
#define CS_NUMORDERCOLS (CS_INT)805
|
|
#define CS_MSGTYPE (CS_INT)806
|
|
#define CS_BROWSE_INFO (CS_INT)807
|
|
#define CS_TRANS_STATE (CS_INT)808
|
|
#define CS_TOKEN_TYPE (CS_INT)809
|
|
|
|
/*
|
|
** Possible values for CS_TRANS_STATE.
|
|
*/
|
|
#define CS_TRAN_UNDEFINED (CS_INT)0
|
|
#define CS_TRAN_IN_PROGRESS (CS_INT)1
|
|
#define CS_TRAN_COMPLETED (CS_INT)2
|
|
#define CS_TRAN_FAIL (CS_INT)3
|
|
#define CS_TRAN_STMT_FAIL (CS_INT)4
|
|
|
|
/*
|
|
** Define the invalid count that the application gets when
|
|
** ct_res_info() is called at the wrong time.
|
|
*/
|
|
#define CS_NO_COUNT (CS_INT)-1
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Commands in Open Client/Server APIs.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** ct_command() command types.
|
|
*/
|
|
#define CS_LANG_CMD (CS_INT)148
|
|
#define CS_RPC_CMD (CS_INT)149
|
|
#define CS_MSG_CMD (CS_INT)150
|
|
#define CS_SEND_DATA_CMD (CS_INT)151
|
|
#define CS_PACKAGE_CMD (CS_INT)152
|
|
#define CS_SEND_BULK_CMD (CS_INT)153
|
|
#define CS_SEND_DATA_NOCMD (CS_INT)154
|
|
#define CS_RAW_CMD (CS_INT)155
|
|
|
|
/*
|
|
** ct_cursor() command types.
|
|
*/
|
|
#define CS_CURSOR_DECLARE (CS_INT)700
|
|
#define CS_CURSOR_OPEN (CS_INT)701
|
|
#define CS_CURSOR_ROWS (CS_INT)703
|
|
#define CS_CURSOR_UPDATE (CS_INT)704
|
|
#define CS_CURSOR_DELETE (CS_INT)705
|
|
#define CS_CURSOR_CLOSE (CS_INT)706
|
|
#define CS_CURSOR_DEALLOC (CS_INT)707
|
|
#define CS_CURSOR_OPTION (CS_INT)725
|
|
|
|
/*
|
|
** Open Server-specific cursor command types.
|
|
*/
|
|
#define CS_CURSOR_FETCH (CS_INT)708
|
|
#define CS_CURSOR_INFO (CS_INT)709
|
|
|
|
/*
|
|
** ct_dyndesc() command types.
|
|
*/
|
|
#define CS_ALLOC (CS_INT)710
|
|
#define CS_DEALLOC (CS_INT)711
|
|
#define CS_USE_DESC (CS_INT)712
|
|
#define CS_GETCNT (CS_INT)713
|
|
#define CS_SETCNT (CS_INT)714
|
|
#define CS_GETATTR (CS_INT)715
|
|
#define CS_SETATTR (CS_INT)716
|
|
|
|
/*
|
|
** ct_dynamic() command types.
|
|
*/
|
|
#define CS_PREPARE (CS_INT)717
|
|
#define CS_EXECUTE (CS_INT)718
|
|
#define CS_EXEC_IMMEDIATE (CS_INT)719
|
|
#define CS_DESCRIBE_INPUT (CS_INT)720
|
|
#define CS_DESCRIBE_INPUTIN (CS_INT)320 /* CS_DESCRIBE_INPUT & CS_INPUT */
|
|
#define CS_DESCRIBE_OUTPUT (CS_INT)721
|
|
#define CS_DYN_CURSOR_DECLARE (CS_INT)722
|
|
|
|
|
|
/*
|
|
** ct_dynsqlda() arguments and actions
|
|
*/
|
|
#define CS_SQLDA_SYBASE (CS_INT)729
|
|
#define CS_GET_IN (CS_INT)730
|
|
#define CS_GET_OUT (CS_INT)731
|
|
#define CS_SQLDA_BIND (CS_INT)732
|
|
#define CS_SQLDA_PARAM (CS_INT)733
|
|
|
|
/*
|
|
** Open Server-specific dynamic command types.
|
|
*/
|
|
#define CS_PROCNAME (CS_INT)723
|
|
#define CS_ACK (CS_INT)724
|
|
|
|
|
|
/*
|
|
** ct_ds_objinfo() objinfo types.
|
|
*/
|
|
#define CS_OBJ_CLASSOID (CS_INT)725
|
|
#define CS_OBJ_DNAME (CS_INT)726
|
|
#define CS_OBJ_NUMATTR (CS_INT)727
|
|
#define CS_OBJ_ATRRIBUTE (CS_INT)728
|
|
|
|
/*
|
|
** Command options
|
|
*/
|
|
#define CS_RECOMPILE (CS_INT)188
|
|
#define CS_NO_RECOMPILE (CS_INT)189
|
|
#define CS_BULK_INIT (CS_INT)190
|
|
#define CS_BULK_CONT (CS_INT)191
|
|
#define CS_BULK_DATA (CS_INT)192
|
|
#define CS_COLUMN_DATA (CS_INT)193
|
|
|
|
/*
|
|
** Cursor options.
|
|
*/
|
|
#define CS_FOR_UPDATE (CS_INT)0x0001
|
|
#define CS_READ_ONLY (CS_INT)0x0002
|
|
#define CS_DYNAMIC (CS_INT)0x0004 /* Open Server only */
|
|
#define CS_RESTORE_OPEN (CS_INT)0x0008 /* CT-Lib only */
|
|
#define CS_MORE (CS_INT)0x0010
|
|
#define CS_END (CS_INT)0x0020
|
|
#define CS_IMPLICIT_CURSOR (CS_INT)0x0040 /* Implicit, CT-Lib */
|
|
#define CS_SCROLL_SENSITIVE (CS_INT)0x0080 /* Scrollable cursor, reserved */
|
|
#define CS_SCROLL_INSENSITIVE (CS_INT)0x0100 /* Scrollable cursor, as default */
|
|
#define CS_SCROLL_SEMISENSITIVE (CS_INT)0x0200 /* Scrollable cursor */
|
|
#define CS_SCROLL_KEYSETDRIVEN (CS_INT)0x0400 /* Scrollable cursor, reserved */
|
|
#define CS_SCROLL_CURSOR (CS_INT)0x0800 /* "Default", internal */
|
|
#define CS_NOSCROLL_INSENSITIVE (CS_INT)0x1000 /* Non-scroll insensitive */
|
|
#define CS_CUR_RELLOCKS_ONCLOSE (CS_INT)0x2000 /* Release locks on curclose */
|
|
|
|
/*
|
|
** SAP defined message ids for CS_MSG_CMDs.
|
|
*/
|
|
#define CS_MSG_GETLABELS (CS_INT)6
|
|
#define CS_MSG_LABELS (CS_INT)7
|
|
#define CS_MSG_TABLENAME (CS_INT)8
|
|
#define CS_PARSE_TREE (CS_INT)8710
|
|
|
|
/*
|
|
** Minimum and maximum user-defined message id for CS_MSG_CMDs.
|
|
*/
|
|
#define CS_USER_MSGID (CS_INT)32768
|
|
#define CS_USER_MAX_MSGID (CS_INT)65535
|
|
|
|
/*
|
|
** Defines for sp_regwatch registered procedure
|
|
*/
|
|
#define CS_NOTIFY_ONCE 0x0002 /* one-time notification request. */
|
|
#define CS_NOTIFY_ALWAYS 0x0004 /* permanent notification request. */
|
|
#define CS_NOTIFY_WAIT 0x0020 /* blocking notification request. */
|
|
#define CS_NOTIFY_NOWAIT 0x0040 /* non-blocking notification request. */
|
|
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Open Client properties.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** Properties that are used in *_props() functions.
|
|
*/
|
|
#define CS_USERNAME (CS_INT)9100
|
|
#define CS_PASSWORD (CS_INT)9101
|
|
#define CS_APPNAME (CS_INT)9102
|
|
#define CS_HOSTNAME (CS_INT)9103
|
|
#define CS_LOGIN_STATUS (CS_INT)9104
|
|
#define CS_TDS_VERSION (CS_INT)9105
|
|
#define CS_CHARSETCNV (CS_INT)9106
|
|
#define CS_PACKETSIZE (CS_INT)9107
|
|
#define CS_USERDATA (CS_INT)9108
|
|
#define CS_COMMBLOCK (CS_INT)9109
|
|
#define CS_NETIO (CS_INT)9110
|
|
#define CS_NOINTERRUPT (CS_INT)9111
|
|
#define CS_TEXTLIMIT (CS_INT)9112
|
|
#define CS_HIDDEN_KEYS (CS_INT)9113
|
|
#define CS_VERSION (CS_INT)9114
|
|
#define CS_IFILE (CS_INT)9115
|
|
#define CS_LOGIN_TIMEOUT (CS_INT)9116
|
|
#define CS_TIMEOUT (CS_INT)9117
|
|
#define CS_MAX_CONNECT (CS_INT)9118
|
|
#define CS_MESSAGE_CB (CS_INT)9119
|
|
#define CS_EXPOSE_FMTS (CS_INT)9120
|
|
#define CS_EXTRA_INF (CS_INT)9121
|
|
#define CS_TRANSACTION_NAME (CS_INT)9122
|
|
#define CS_ANSI_BINDS (CS_INT)9123
|
|
#define CS_BULK_LOGIN (CS_INT)9124
|
|
#define CS_LOC_PROP (CS_INT)9125
|
|
#define CS_CUR_STATUS (CS_INT)9126
|
|
#define CS_CUR_ID (CS_INT)9127
|
|
#define CS_CUR_NAME (CS_INT)9128
|
|
#define CS_CUR_ROWCOUNT (CS_INT)9129
|
|
#define CS_PARENT_HANDLE (CS_INT)9130
|
|
#define CS_EED_CMD (CS_INT)9131
|
|
#define CS_DIAG_TIMEOUT (CS_INT)9132
|
|
#define CS_DISABLE_POLL (CS_INT)9133
|
|
#define CS_NOTIF_CMD (CS_INT)9134
|
|
#define CS_SEC_ENCRYPTION (CS_INT)9135
|
|
#define CS_SEC_CHALLENGE (CS_INT)9136
|
|
#define CS_SEC_NEGOTIATE (CS_INT)9137
|
|
#define CS_MEM_POOL (CS_INT)9138
|
|
#define CS_USER_ALLOC (CS_INT)9139
|
|
#define CS_USER_FREE (CS_INT)9140
|
|
#define CS_ENDPOINT (CS_INT)9141
|
|
#define CS_NO_TRUNCATE (CS_INT)9142
|
|
#define CS_CON_STATUS (CS_INT)9143
|
|
#define CS_VER_STRING (CS_INT)9144
|
|
#define CS_ASYNC_NOTIFS (CS_INT)9145
|
|
#define CS_SERVERNAME (CS_INT)9146
|
|
/* For CS_SERVERADDR (9206) see below */
|
|
#define CS_THREAD_RESOURCE (CS_INT)9147
|
|
#define CS_NOAPI_CHK (CS_INT)9148
|
|
#define CS_SEC_APPDEFINED (CS_INT)9149
|
|
#define CS_NOCHARSETCNV_REQD (CS_INT)9150
|
|
#define CS_STICKY_BINDS (CS_INT)9151
|
|
#define CS_HAVE_CMD (CS_INT)9152
|
|
#define CS_HAVE_BINDS (CS_INT)9153
|
|
#define CS_HAVE_CUROPEN (CS_INT)9154
|
|
#define CS_EXTERNAL_CONFIG (CS_INT)9155
|
|
#define CS_CONFIG_FILE (CS_INT)9156
|
|
#define CS_CONFIG_BY_SERVERNAME (CS_INT)9157
|
|
|
|
/*
|
|
** Directory Service connection properties
|
|
*/
|
|
#define CS_DS_CHAIN (CS_INT)9158
|
|
#define CS_DS_EXPANDALIAS (CS_INT)9159
|
|
#define CS_DS_COPY (CS_INT)9160
|
|
#define CS_DS_LOCALSCOPE (CS_INT)9161
|
|
#define CS_DS_PREFERCHAIN (CS_INT)9162
|
|
#define CS_DS_SCOPE (CS_INT)9163
|
|
#define CS_DS_SIZELIMIT (CS_INT)9164
|
|
#define CS_DS_TIMELIMIT (CS_INT)9165
|
|
#define CS_DS_PRINCIPAL (CS_INT)9166
|
|
/* For CS_DS_PASSWORD (9198) see below */
|
|
#define CS_DS_REFERRAL (CS_INT)9167
|
|
#define CS_DS_SEARCH (CS_INT)9168
|
|
#define CS_DS_DITBASE (CS_INT)9169
|
|
#define CS_DS_FAILOVER (CS_INT)9170
|
|
#define CS_NET_TRANADDR (CS_INT)9171
|
|
#define CS_DS_PROVIDER (CS_INT)9172
|
|
#define CS_RETRY_COUNT (CS_INT)9173
|
|
#define CS_LOOP_DELAY (CS_INT)9174
|
|
|
|
/*
|
|
** Properties for Security services support
|
|
*/
|
|
#define CS_SEC_NETWORKAUTH (CS_INT)9175
|
|
#define CS_SEC_DELEGATION (CS_INT)9176
|
|
#define CS_SEC_MUTUALAUTH (CS_INT)9177
|
|
#define CS_SEC_INTEGRITY (CS_INT)9178
|
|
#define CS_SEC_CONFIDENTIALITY (CS_INT)9179
|
|
#define CS_SEC_CREDTIMEOUT (CS_INT)9180
|
|
#define CS_SEC_SESSTIMEOUT (CS_INT)9181
|
|
#define CS_SEC_DETECTREPLAY (CS_INT)9182
|
|
#define CS_SEC_DETECTSEQ (CS_INT)9183
|
|
#define CS_SEC_DATAORIGIN (CS_INT)9184
|
|
#define CS_SEC_MECHANISM (CS_INT)9185
|
|
#define CS_SEC_CREDENTIALS (CS_INT)9186
|
|
#define CS_SEC_CHANBIND (CS_INT)9187
|
|
#define CS_SEC_SERVERPRINCIPAL (CS_INT)9188
|
|
#define CS_SEC_KEYTAB (CS_INT)9189
|
|
|
|
/*
|
|
** More properties
|
|
*/
|
|
#define CS_ABORTCHK_INTERVAL (CS_INT)9190
|
|
#define CS_LOGIN_TYPE (CS_INT)9191
|
|
#define CS_CON_KEEPALIVE (CS_INT)9192
|
|
#define CS_CON_TCP_NODELAY (CS_INT)9193
|
|
#define CS_LOGIN_REMOTE_SERVER (CS_INT)9194
|
|
#define CS_LOGIN_REMOTE_PASSWD (CS_INT)9195
|
|
|
|
/*
|
|
** Property for HA failover
|
|
*/
|
|
#define CS_HAFAILOVER (CS_INT)9196
|
|
|
|
/*
|
|
** Property for reverting to behavior of earlier versions
|
|
*/
|
|
#define CS_BEHAVIOR (CS_INT)9197
|
|
|
|
/*
|
|
** Property for Directory services. (belongs with CS_DS_* above)
|
|
** Added at LDAP implementation time.
|
|
*/
|
|
#define CS_DS_PASSWORD (CS_INT)9198
|
|
|
|
/*
|
|
** Property for blklib user data.
|
|
*/
|
|
#define CS_BLKDATA (CS_INT)9199
|
|
|
|
/*
|
|
** Properties for SSL
|
|
*/
|
|
#define CS_PROP_SSL_PROTOVERSION (CS_INT)9200
|
|
#define CS_PROP_SSL_CIPHER (CS_INT)9201
|
|
#define CS_PROP_SSL_LOCALID (CS_INT)9202
|
|
#define CS_PROP_SSL_CA (CS_INT)9203
|
|
#define CS_PROP_TLS_KEYREGEN (CS_INT)9205
|
|
|
|
/*
|
|
** Property for connecting to ASE using host and port.
|
|
*/
|
|
#define CS_SERVERADDR (CS_INT)9206
|
|
|
|
/*
|
|
** Properties related to use of login redirection and
|
|
** Cluster HA extensions.
|
|
*/
|
|
#define CS_PROP_REDIRECT (CS_INT)9207
|
|
#define CS_PROP_EXTENDEDFAILOVER (CS_INT)9208
|
|
#define CS_DS_RAND_OFFSET (CS_INT)9209
|
|
|
|
/*
|
|
** Property used to retrieve the ASE database SPID
|
|
** that is returned at login time. Note that this value
|
|
** may change should migration occur!
|
|
*/
|
|
#define CS_PROP_APPLICATION_SPID (CS_INT)9210
|
|
|
|
/*
|
|
** For ct_cmd_props(), scrollable cursor.
|
|
** CS_CUR_ROWPOSITION is reserved for future use.
|
|
*/
|
|
#define CS_CUR_TOTALROWS (CS_INT)9211
|
|
#define CS_CUR_ROWPOSITION (CS_INT)9212
|
|
|
|
/*
|
|
** For extended password encryption
|
|
*/
|
|
#define CS_SEC_EXTENDED_ENCRYPTION (CS_INT)9213
|
|
#define CS_SEC_NON_ENCRYPTION_RETRY (CS_INT)9214
|
|
|
|
/*
|
|
** For connection migration
|
|
*/
|
|
#define CS_PROP_MIGRATABLE (CS_INT)9215
|
|
|
|
/*
|
|
** For setting sybase home and an alternate libtcl config file location.
|
|
*/
|
|
#define CS_SYBASE_HOME (CS_INT)9216
|
|
#define CS_LIBTCL_CFG (CS_INT)9217
|
|
|
|
/*
|
|
** For setting default interfaces file
|
|
*/
|
|
#define CS_DEFAULT_IFILE (CS_INT)9218
|
|
|
|
/*
|
|
** To retrieve the CS_TRANADDR ct_connect successfully used to
|
|
** establish communication with the server.
|
|
*/
|
|
#define CS_CONNECTED_ADDR (CS_INT)9219
|
|
|
|
/*
|
|
** The connection allows partial text/image updates.
|
|
*/
|
|
#define CS_PARTIAL_TEXT (CS_INT)9220
|
|
|
|
/*
|
|
** The connection omits 'writetext' with ct_send_data().
|
|
*/
|
|
#define CS_SENDDATA_NOCMD (CS_INT)9221
|
|
|
|
/*
|
|
** When the application name was set to the executable name, this name
|
|
** will be used to parse ocs.cfg for its application specific section.
|
|
*/
|
|
#define CS_USE_DISCOVERED_APPNAME (CS_INT)9222
|
|
|
|
/*
|
|
** When the application name was set to the executable name, this setting
|
|
** will indicate how to 'sanitize' that name: all upper case, all lower case
|
|
** or no sanitization.
|
|
*/
|
|
#define CS_SANITIZE_DISC_APPNAME (CS_INT)9223
|
|
|
|
/*
|
|
** Allow an application to set the TCP send and receive buffer sizes.
|
|
** These are negotiated at the TCP layer and must be set before calling
|
|
** ct_connect.
|
|
*/
|
|
#define CS_TCP_RCVBUF (CS_INT)9224
|
|
#define CS_TCP_SNDBUF (CS_INT)9225
|
|
#define CS_TCP_LRGBUF 2146304
|
|
|
|
/*
|
|
** Allow row format information to be suppressed on subsequent execution
|
|
** of a prepared statement.
|
|
*/
|
|
#define CS_CMD_SUPPRESS_FMT (CS_INT)9226
|
|
|
|
/*
|
|
** The object name returned by user API ct_data_info() is bracketed.
|
|
*/
|
|
#define CS_PROP_BRACKETED_IDENT (CS_INT)9227
|
|
|
|
/*
|
|
** Set connection to be read-only as defined by server
|
|
** definition of read-only.
|
|
*/
|
|
#define CS_PROP_READONLY (CS_INT)9228
|
|
|
|
/*
|
|
** Allow database to be set at connection time.
|
|
** Also retrieve the name of the database currently being used on the server.
|
|
*/
|
|
#define CS_PROP_INITIAL_DATABASE (CS_INT)9229
|
|
#define CS_PROP_CURRENT_DATABASE (CS_INT)9230
|
|
#define CS_PROP_USE_LAST_DATABASE (CS_INT)9231
|
|
#define CS_PROP_FIPSMODE (CS_INT)9232
|
|
|
|
/* End of properties */
|
|
|
|
/*
|
|
** CS_DS_SCOPE Values
|
|
*/
|
|
#define CS_SCOPE_COUNTRY (CS_INT)1
|
|
#define CS_SCOPE_DMD (CS_INT)2
|
|
#define CS_SCOPE_WORLD (CS_INT)3
|
|
|
|
/*
|
|
** CS_DS_SEARCH Values
|
|
*/
|
|
#define CS_SEARCH_OBJECT (CS_INT)1
|
|
#define CS_SEARCH_ONE_LEVEL (CS_INT)2
|
|
#define CS_SEARCH_SUBTREE (CS_INT)3
|
|
|
|
/*
|
|
** Possible values for the CS_NETIO property.
|
|
*/
|
|
#define CS_SYNC_IO (CS_INT)8111
|
|
#define CS_ASYNC_IO (CS_INT)8112
|
|
#define CS_DEFER_IO (CS_INT)8113
|
|
|
|
/*
|
|
** Possible bit values for the CS_LOGIN_STATUS property.
|
|
*/
|
|
#define CS_CONSTAT_CONNECTED (CS_INT)0x1
|
|
#define CS_CONSTAT_DEAD (CS_INT)0x2
|
|
|
|
|
|
/*
|
|
** Possible bit values for the CS_CUR_STATUS property.
|
|
*/
|
|
#define CS_CURSTAT_NONE (CS_INT)0x0000
|
|
#define CS_CURSTAT_DECLARED (CS_INT)0x0001
|
|
#define CS_CURSTAT_OPEN (CS_INT)0x0002
|
|
#define CS_CURSTAT_CLOSED (CS_INT)0x0004
|
|
#define CS_CURSTAT_RDONLY (CS_INT)0x0008
|
|
#define CS_CURSTAT_UPDATABLE (CS_INT)0x0010
|
|
#define CS_CURSTAT_ROWCOUNT (CS_INT)0x0020
|
|
#define CS_CURSTAT_DEALLOC (CS_INT)0x0040
|
|
#define CS_CURSTAT_SCROLLABLE (CS_INT)0x0080
|
|
#define CS_CURSTAT_IMPLICIT (CS_INT)0x0100
|
|
#define CS_CURSTAT_SENSITIVE (CS_INT)0x0200
|
|
#define CS_CURSTAT_INSENSITIVE (CS_INT)0x0400
|
|
#define CS_CURSTAT_SEMISENSITIVE (CS_INT)0x0800
|
|
#define CS_CURSTAT_KEYSETDRIVEN (CS_INT)0x1000
|
|
#define CS_CURSTAT_RELLOCKS_ONCLOSE (CS_INT)0x2000
|
|
|
|
/*
|
|
** Possible bit values for implicit cursor status
|
|
*/
|
|
#define CS_IMPCURSTAT_NONE (CS_INT)0x0000
|
|
#define CS_IMPCURSTAT_DECLARED (CS_INT)0x0001
|
|
#define CS_IMPCURSTAT_READROWS (CS_INT)0x0002
|
|
#define CS_IMPCURSTAT_CLOSED (CS_INT)0x0004
|
|
#define CS_IMPCURSTAT_SENDSUCCESS (CS_INT)0x0008
|
|
#define CS_IMPCURSTAT_FINALREAD (CS_INT)0x0010
|
|
#define CS_IMPCURSTAT_NOSEND (CS_INT)0x0020
|
|
#define CS_IMPCURSTAT_NOSENDDONE (CS_INT)0x0040
|
|
|
|
/*
|
|
** Possible values for the CS_TDS_VERSION property.
|
|
*/
|
|
#define CS_TDS_40 (CS_INT)7360
|
|
#define CS_TDS_42 (CS_INT)7361
|
|
#define CS_TDS_46 (CS_INT)7362
|
|
#define CS_TDS_495 (CS_INT)7363
|
|
#define CS_TDS_50 (CS_INT)7364
|
|
|
|
/*
|
|
** Possible values for the CS_BEHAVIOR property.
|
|
*/
|
|
#define CS_BEHAVIOR_080 (CS_INT)7369
|
|
#define CS_BEHAVIOR_100 (CS_INT)7370
|
|
#define CS_BEHAVIOR_110 (CS_INT)7371
|
|
#define CS_BEHAVIOR_120 (CS_INT)7372
|
|
#define CS_BEHAVIOR_125 (CS_INT)7373
|
|
|
|
/*
|
|
** Possible values for the CS_PROP_SSL_PROTOVERSION property.
|
|
**
|
|
** If 2.0 handshake is desired with SSL 3.0 or TLS 1.0, or
|
|
** CS_SSLVER_20HAND
|
|
*/
|
|
#define CS_SSLVER_20 (CS_INT)1
|
|
#define CS_SSLVER_30 (CS_INT)2
|
|
#define CS_SSLVER_TLS1 (CS_INT)3
|
|
#define CS_SSLVER_20HAND (CS_INT)0x80000000
|
|
|
|
/*
|
|
** Valid values for the CS_SANITIZE_DISC_APPNAME property.
|
|
*/
|
|
typedef enum cs_sanitize_conversion
|
|
{
|
|
CS_CNVRT_NOTHING,
|
|
CS_CNVRT_LOWERCASE,
|
|
CS_CNVRT_UPPERCASE
|
|
} CS_SANITIZE_CONVERSION;
|
|
|
|
/*
|
|
** Structure used with the CS_PROP_SSL_LOCALID property.
|
|
*/
|
|
typedef struct _cs_sslid
|
|
{
|
|
CS_CHAR *identity_file;
|
|
CS_CHAR *identity_password;
|
|
} CS_SSLIDENTITY;
|
|
|
|
/*
|
|
** Structure used to deal with certificates in the validate callback.
|
|
*/
|
|
typedef struct _cs_sslcertfield
|
|
{
|
|
CS_VOID *value;
|
|
CS_INT field_id;
|
|
CS_INT length;
|
|
} CS_SSLCERT_FIELD;
|
|
typedef struct _cs_sslcert
|
|
{
|
|
CS_INT field_count;
|
|
CS_INT extension_count;
|
|
CS_UINT start_date;
|
|
CS_UINT end_date;
|
|
CS_SSLCERT_FIELD *fieldptr;
|
|
CS_SSLCERT_FIELD *extensionptr;
|
|
} CS_SSLCERT;
|
|
|
|
typedef CS_INT (CS_PUBLIC * CS_CERT_CB) (
|
|
CS_VOID *user_data,
|
|
CS_SSLCERT *certptr,
|
|
CS_INT cert_count,
|
|
CS_INT valid
|
|
);
|
|
|
|
/*
|
|
** Defines for valid certificate fields.
|
|
*/
|
|
#define CS_SSLFLD_noMatch 0
|
|
#define CS_SSLFLD_md2 1
|
|
#define CS_SSLFLD_md4 2
|
|
#define CS_SSLFLD_md5 3
|
|
#define CS_SSLFLD_sha1 4
|
|
#define CS_SSLFLD_rsaEncryption 5
|
|
#define CS_SSLFLD_md2WithRSA 6
|
|
#define CS_SSLFLD_md4WithRSA 7
|
|
#define CS_SSLFLD_md5WithRSA 8
|
|
#define CS_SSLFLD_sha1WithRSA 9
|
|
#define CS_SSLFLD_dhKeyAgreement 10
|
|
#define CS_SSLFLD_pbeWithMD2AndDES_CBC 11
|
|
#define CS_SSLFLD_pbeWithMD5AndDES_CBC 12
|
|
#define CS_SSLFLD_emailAddress 13
|
|
#define CS_SSLFLD_unstructuredName 14
|
|
#define CS_SSLFLD_contentType 15
|
|
#define CS_SSLFLD_messageDigest 16
|
|
#define CS_SSLFLD_signingTime 17
|
|
#define CS_SSLFLD_counterSignature 18
|
|
#define CS_SSLFLD_challengePassword 19
|
|
#define CS_SSLFLD_unstructuredAddress 20
|
|
#define CS_SSLFLD_extendedCertificateAttributes 21
|
|
#define CS_SSLFLD_commonName 22
|
|
#define CS_SSLFLD_surName 23
|
|
#define CS_SSLFLD_serialNumber 24
|
|
#define CS_SSLFLD_countryName 25
|
|
#define CS_SSLFLD_localityName 26
|
|
#define CS_SSLFLD_stateProvinceName 27
|
|
#define CS_SSLFLD_streetAddress 28
|
|
#define CS_SSLFLD_organizationName 29
|
|
#define CS_SSLFLD_organizationalUnitName 30
|
|
#define CS_SSLFLD_title 31
|
|
#define CS_SSLFLD_description 32
|
|
#define CS_SSLFLD_businessCategory 33
|
|
#define CS_SSLFLD_postalAddress 34
|
|
#define CS_SSLFLD_postalCode 35
|
|
#define CS_SSLFLD_postOfficeBox 36
|
|
#define CS_SSLFLD_physicalDeliveryOfficeName 37
|
|
#define CS_SSLFLD_telephoneNumber 38
|
|
#define CS_SSLFLD_telexNumber 39
|
|
#define CS_SSLFLD_telexTerminalIdentifier 40
|
|
#define CS_SSLFLD_facsimileTelephoneNumber 41
|
|
#define CS_SSLFLD_x_121Address 42
|
|
#define CS_SSLFLD_internationalISDNNumber 43
|
|
#define CS_SSLFLD_registeredAddress 44
|
|
#define CS_SSLFLD_destinationIndicator 45
|
|
#define CS_SSLFLD_preferredDeliveryMethod 46
|
|
#define CS_SSLFLD_presentationAddress 47
|
|
#define CS_SSLFLD_supportedApplicationContext 48
|
|
#define CS_SSLFLD_member 49
|
|
#define CS_SSLFLD_owner 50
|
|
#define CS_SSLFLD_roleOccupant 51
|
|
#define CS_SSLFLD_mysteryPKCS7_PKCS5 52
|
|
#define CS_SSLFLD_netscapeCertType 53
|
|
#define CS_SSLFLD_netscapeBaseURL 54
|
|
#define CS_SSLFLD_netscapeRevocationURL 55
|
|
#define CS_SSLFLD_netscapeCARevocationURL 56
|
|
#define CS_SSLFLD_netscapeCertRenewalURL 57
|
|
#define CS_SSLFLD_netscapeCAPolicyURL 58
|
|
#define CS_SSLFLD_netscapeSSLServerName 59
|
|
#define CS_SSLFLD_netscapeComment 60
|
|
#define CS_SSLFLD_subjectDirectoryAttributes 61
|
|
#define CS_SSLFLD_subjectKeyIdentifier 62
|
|
#define CS_SSLFLD_keyUsage 63
|
|
#define CS_SSLFLD_privateKeyUsagePeriod 64
|
|
#define CS_SSLFLD_subjectAltName 65
|
|
#define CS_SSLFLD_issuerAltName 66
|
|
#define CS_SSLFLD_basicConstraints 67
|
|
#define CS_SSLFLD_crlNumber 68
|
|
#define CS_SSLFLD_crlReason 69
|
|
#define CS_SSLFLD_holdInstructionCode 70
|
|
#define CS_SSLFLD_invalidityDate 71
|
|
#define CS_SSLFLD_deltaCRLIndicator 72
|
|
#define CS_SSLFLD_issuingDistributionPoint 73
|
|
#define CS_SSLFLD_nameConstraints 74
|
|
#define CS_SSLFLD_certificatePolicies 75
|
|
#define CS_SSLFLD_policyMappings 76
|
|
#define CS_SSLFLD_policyConstraints 77
|
|
#define CS_SSLFLD_authorityKeyIdentifier 78
|
|
#define CS_SSLFLD_extendedKeyUsage 79
|
|
#define CS_SSLFLD_pkixSubjectInfoAccess 80
|
|
#define CS_SSLFLD_pkixAuthorityInfoAccess 81
|
|
#define CS_SSLFLD_pkixCPS 82
|
|
#define CS_SSLFLD_pkixUserNotice 83
|
|
#define CS_SSLFLD_pkixKPServerAuth 84
|
|
#define CS_SSLFLD_pkixKPClientAuth 85
|
|
#define CS_SSLFLD_pkixKPCodeSigning 86
|
|
#define CS_SSLFLD_pkixKPEmailProtection 87
|
|
#define CS_SSLFLD_pkixKPIPSECEndSystem 88
|
|
#define CS_SSLFLD_pkixKPIPSECTunnel 89
|
|
#define CS_SSLFLD_pkixKPIPSECUser 90
|
|
#define CS_SSLFLD_pkixKPTimeStamping 91
|
|
#define CS_SSLFLD_netscapeKPStepUp 92
|
|
#define CS_SSLFLD_microsoftKPServerGatedCrypto 93
|
|
#define CS_SSLFLD_sha1WithDSA 94
|
|
#define CS_SSLFLD_dsa 95
|
|
#define CS_SSLFLD_contentInfoData 96
|
|
#define CS_SSLFLD_contentInfoSignedData 97
|
|
#define CS_SSLFLD_contentInfoEnvelopedData 98
|
|
#define CS_SSLFLD_contentInfoSignedAndEnvelopedData 99
|
|
#define CS_SSLFLD_contentInfoDigestedData 100
|
|
#define CS_SSLFLD_contentInfoEncryptedData 101
|
|
#define CS_SSLFLD_keyBag 102
|
|
#define CS_SSLFLD_pkcs8ShroudedKeyBag 103
|
|
#define CS_SSLFLD_certBag 104
|
|
#define CS_SSLFLD_crlBag 105
|
|
#define CS_SSLFLD_secretBag 106
|
|
#define CS_SSLFLD_safeContentBag 107
|
|
#define CS_SSLFLD_pbeWithSHA1And128RC4 108
|
|
#define CS_SSLFLD_pbeWithSHA1And40BitRC4 109
|
|
#define CS_SSLFLD_pbeWithSHA1And3KeyTripleDESCBC 110
|
|
#define CS_SSLFLD_pbeWithSHA1And2KeyTripleDESCBC 111
|
|
#define CS_SSLFLD_pbeWithSHA1And128BitRC2CBC 112
|
|
#define CS_SSLFLD_pbeWithSHA1And40BitRC2CBC 113
|
|
#define CS_SSLFLD_desEDECBC3 114
|
|
#define CS_SSLFLD_rc2CBC 115
|
|
#define CS_SSLFLD_x509Certificate 116
|
|
#define CS_SSLFLD_dhPublicNumber 117
|
|
#define CS_SSLFLD_ecdhPublicNumber 118
|
|
#define CS_SSLFLD_ecdhPrivateNumber 119
|
|
#define CS_SSLFLD_ecPublicKey 120
|
|
#define CS_SSLFLD_ecPrivateKey 121
|
|
#define CS_SSLFLD_ecdsaWithSHA1 122
|
|
#define CS_SSLFLD_ecdsaec163a01 123
|
|
#define CS_SSLFLD_ecdsaec163a02 124
|
|
#define CS_SSLFLD_ecdsaec155b01 125
|
|
#define CS_SSLFLD_ecdsaec163b01 126
|
|
#define CS_SSLFLD_ecdsaec210b01 127
|
|
#define CS_SSLFLD_ecnraec163a01 128
|
|
#define CS_SSLFLD_ecnraec163a02 129
|
|
#define CS_SSLFLD_ecnraec155b01 130
|
|
#define CS_SSLFLD_ecnraec163b01 131
|
|
#define CS_SSLFLD_ecnraec210b01 132
|
|
#define CS_SSLFLD_curve113a01 133
|
|
#define CS_SSLFLD_curve163a01 134
|
|
#define CS_SSLFLD_curve163a02 135
|
|
#define CS_SSLFLD_curve163b01 136
|
|
|
|
/*
|
|
** Define values for SSL/TLS certificate validation checks
|
|
*/
|
|
#define CS_SSL_VALID_CERT 0
|
|
#define CS_SSL_INVALID_BADCHAIN 1
|
|
#define CS_SSL_INVALID_EXPCERT 2
|
|
#define CS_SSL_INVALID_INCOMPLETE 3
|
|
#define CS_SSL_INVALID_UNKNOWN 4
|
|
#define CS_SSL_INVALID_UNTRUSTED 5
|
|
#define CS_SSL_INVALID_MISSINGNAME 6
|
|
#define CS_SSL_INVALID_MISMATCHNAME 7
|
|
#define CS_SSL_INVALID_CERT 8
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Open Client/Server options.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** The following is the list of all valid options:
|
|
*/
|
|
#define CS_OPT_DATEFIRST (CS_INT)5001 /* Set first day of week */
|
|
#define CS_OPT_TEXTSIZE (CS_INT)5002 /* Text size */
|
|
#define CS_OPT_STATS_TIME (CS_INT)5003 /* Server time statistics */
|
|
#define CS_OPT_STATS_IO (CS_INT)5004 /* Server I/O statistics */
|
|
#define CS_OPT_ROWCOUNT (CS_INT)5005 /* Maximum row count */
|
|
#define CS_OPT_NATLANG (CS_INT)5006 /* National Language */
|
|
#define CS_OPT_DATEFORMAT (CS_INT)5007 /* Date format */
|
|
#define CS_OPT_ISOLATION (CS_INT)5008 /* Transaction isolation
|
|
** level */
|
|
#define CS_OPT_AUTHON (CS_INT)5009 /* Set authority level on */
|
|
#define CS_OPT_CHARSET (CS_INT)5010 /* Character set */
|
|
#define CS_OPT_SHOWPLAN (CS_INT)5013 /* show execution plan */
|
|
#define CS_OPT_NOEXEC (CS_INT)5014 /* don't execute query */
|
|
#define CS_OPT_ARITHIGNORE (CS_INT)5015 /* ignore arithmetic
|
|
** exceptions */
|
|
#define CS_OPT_TRUNCIGNORE (CS_INT)5016 /* support ANSI null values */
|
|
#define CS_OPT_ARITHABORT (CS_INT)5017 /* abort on arithmetic
|
|
** exceptions */
|
|
#define CS_OPT_PARSEONLY (CS_INT)5018 /* parse only, return error
|
|
** msgs */
|
|
#define CS_OPT_GETDATA (CS_INT)5020 /* return trigger data */
|
|
#define CS_OPT_NOCOUNT (CS_INT)5021 /* don't print done count */
|
|
#define CS_OPT_FORCEPLAN (CS_INT)5023 /* force variable substitute
|
|
** order */
|
|
#define CS_OPT_FORMATONLY (CS_INT)5024 /* send format w/o row */
|
|
#define CS_OPT_CHAINXACTS (CS_INT)5025 /* chained transaction mode */
|
|
#define CS_OPT_CURCLOSEONXACT (CS_INT)5026 /* close cursor on end trans */
|
|
#define CS_OPT_FIPSFLAG (CS_INT)5027 /* FIPS flag */
|
|
#define CS_OPT_RESTREES (CS_INT)5028 /* return resolution trees */
|
|
#define CS_OPT_IDENTITYON (CS_INT)5029 /* turn on explicit identity */
|
|
#define CS_OPT_CURREAD (CS_INT)5030 /* Set session label @@curread */
|
|
#define CS_OPT_CURWRITE (CS_INT)5031 /* Set session label @@curwrite */
|
|
#define CS_OPT_IDENTITYOFF (CS_INT)5032 /* turn off explicit identity */
|
|
#define CS_OPT_AUTHOFF (CS_INT)5033 /* Set authority level off */
|
|
#define CS_OPT_ANSINULL (CS_INT)5034 /* ANSI NULLS behavior */
|
|
#define CS_OPT_QUOTED_IDENT (CS_INT)5035 /* Quoted identifiers */
|
|
#define CS_OPT_ANSIPERM (CS_INT)5036 /* ANSI permission checking */
|
|
#define CS_OPT_STR_RTRUNC (CS_INT)5037 /* ANSI right truncation */
|
|
#define CS_OPT_SORTMERGE (CS_INT)5038 /* Sort merge join status */
|
|
#define CS_OPT_JTC (CS_INT)5039 /* Enable/disable JTC for session */
|
|
#define CS_OPT_CLIENTREALNAME (CS_INT)5040 /* Set client real name */
|
|
#define CS_OPT_CLIENTHOSTNAME (CS_INT)5041 /* Set client host name */
|
|
#define CS_OPT_CLIENTAPPLNAME (CS_INT)5042 /* Set client appl name */
|
|
#define CS_OPT_IDENTITYUPD_ON (CS_INT)5043 /* turn on identity update */
|
|
#define CS_OPT_IDENTITYUPD_OFF (CS_INT)5044 /* turn off identity update */
|
|
#define CS_OPT_NODATA (CS_INT)5045 /* turn on/off nodata option */
|
|
#define CS_OPT_CIPHERTEXT (CS_INT)5046 /* turn on/off ciphertext
|
|
** encryption */
|
|
#define CS_OPT_SHOW_FI (CS_INT)5047 /* Show Functional Indexes */
|
|
#define CS_OPT_HIDE_VCC (CS_INT)5048 /* Hide Virtual Computed Columns */
|
|
#define CS_OPT_LOBLOCATOR (CS_INT)5049 /* Enable/disable Lob locator */
|
|
#define CS_OPT_LOBLOCFETCHSIZE (CS_INT)5050 /* Lob locator fetch size */
|
|
|
|
#define CS_MIN_OPTION CS_OPT_DATEFIRST
|
|
#define CS_MAX_OPTION CS_OPT_LOBLOCFETCHSIZE
|
|
|
|
/*
|
|
** The supported options are summarized below with their defined values
|
|
** for `ArgSize' and `OptionArg'. ArgSize specifies the domain of valid
|
|
** values that are allowed.
|
|
**
|
|
** Option ArgSize OptionArg
|
|
** --------------- --------- ---------
|
|
** CS_OPT_DATEFIRST 1 byte Defines below
|
|
** CS_OPT_TEXTSIZE 4 bytes Size in bytes
|
|
** CS_OPT_ROWCOUNT 4 bytes Number of rows
|
|
** CS_OPT_NATLANG OptionArg Len National Lang (string)
|
|
** CS_OPT_DATEFORMAT 1 byte Defines below
|
|
** CS_OPT_ISOLATION 1 byte Defines below
|
|
** CS_OPT_AUTHON OptionArg Len Table Name (string)
|
|
** CS_OPT_CHARSET OptionArg Len Character set (string)
|
|
** CS_OPT_IDENTITYON OptionArg Len Table Name (string)
|
|
** CS_OPT_CURREAD OptionArg Len Read Label(string)
|
|
** CS_OPT_CURWRITE OptionArg Len Write Label(string)
|
|
** CS_OPT_IDENTITYOFF OptionArg Len Table Name (string)
|
|
** CS_OPT_AUTHOFF OptionArg Len Table Name (string)
|
|
** CS_OPT_IDENTITYUPD_ON OptionArg Len Table Name (string)
|
|
** CS_OPT_IDENTITYUPD_OFF OptionArg Len Table Name (string)
|
|
** (All remaining options) 1 byte Boolean value
|
|
**
|
|
** All string values must be sent in 7 bit ASCII.
|
|
**
|
|
*/
|
|
|
|
|
|
/* CS_OPT_DATEFIRST */
|
|
#define CS_OPT_MONDAY (CS_INT)1
|
|
#define CS_OPT_TUESDAY (CS_INT)2
|
|
#define CS_OPT_WEDNESDAY (CS_INT)3
|
|
#define CS_OPT_THURSDAY (CS_INT)4
|
|
#define CS_OPT_FRIDAY (CS_INT)5
|
|
#define CS_OPT_SATURDAY (CS_INT)6
|
|
#define CS_OPT_SUNDAY (CS_INT)7
|
|
|
|
/* CS_OPT_DATEFORMAT */
|
|
#define CS_OPT_FMTMDY (CS_INT)1
|
|
#define CS_OPT_FMTDMY (CS_INT)2
|
|
#define CS_OPT_FMTYMD (CS_INT)3
|
|
#define CS_OPT_FMTYDM (CS_INT)4
|
|
#define CS_OPT_FMTMYD (CS_INT)5
|
|
#define CS_OPT_FMTDYM (CS_INT)6
|
|
|
|
/* CS_OPT_ISOLATION */
|
|
#define CS_OPT_LEVEL0 (CS_INT)0
|
|
#define CS_OPT_LEVEL1 (CS_INT)1
|
|
#define CS_OPT_LEVEL2 (CS_INT)2
|
|
#define CS_OPT_LEVEL3 (CS_INT)3
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Open Client/Server capabilities.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** Capability types.
|
|
*/
|
|
#define CS_CAP_REQUEST (CS_INT)1
|
|
#define CS_CAP_RESPONSE (CS_INT)2
|
|
|
|
/*
|
|
** Special capability value to set/get all capability values at once.
|
|
*/
|
|
#define CS_ALL_CAPS (CS_INT)2700
|
|
|
|
/*
|
|
** Capability request values.
|
|
*/
|
|
#define CS_REQ_LANG (CS_INT)1
|
|
#define CS_REQ_RPC (CS_INT)2
|
|
#define CS_REQ_NOTIF (CS_INT)3
|
|
#define CS_REQ_MSTMT (CS_INT)4
|
|
#define CS_REQ_BCP (CS_INT)5
|
|
#define CS_REQ_CURSOR (CS_INT)6
|
|
#define CS_REQ_DYN (CS_INT)7
|
|
#define CS_REQ_MSG (CS_INT)8
|
|
#define CS_REQ_PARAM (CS_INT)9
|
|
#define CS_DATA_INT1 (CS_INT)10
|
|
#define CS_DATA_INT2 (CS_INT)11
|
|
#define CS_DATA_INT4 (CS_INT)12
|
|
#define CS_DATA_BIT (CS_INT)13
|
|
#define CS_DATA_CHAR (CS_INT)14
|
|
#define CS_DATA_VCHAR (CS_INT)15
|
|
#define CS_DATA_BIN (CS_INT)16
|
|
#define CS_DATA_VBIN (CS_INT)17
|
|
#define CS_DATA_MNY8 (CS_INT)18
|
|
#define CS_DATA_MNY4 (CS_INT)19
|
|
#define CS_DATA_DATE8 (CS_INT)20
|
|
#define CS_DATA_DATE4 (CS_INT)21
|
|
#define CS_DATA_FLT4 (CS_INT)22
|
|
#define CS_DATA_FLT8 (CS_INT)23
|
|
#define CS_DATA_NUM (CS_INT)24
|
|
#define CS_DATA_TEXT (CS_INT)25
|
|
#define CS_DATA_IMAGE (CS_INT)26
|
|
#define CS_DATA_DEC (CS_INT)27
|
|
#define CS_DATA_LCHAR (CS_INT)28
|
|
#define CS_DATA_LBIN (CS_INT)29
|
|
#define CS_DATA_INTN (CS_INT)30
|
|
#define CS_DATA_DATETIMEN (CS_INT)31
|
|
#define CS_DATA_MONEYN (CS_INT)32
|
|
#define CS_CSR_PREV (CS_INT)33
|
|
#define CS_CSR_FIRST (CS_INT)34
|
|
#define CS_CSR_LAST (CS_INT)35
|
|
#define CS_CSR_ABS (CS_INT)36
|
|
#define CS_CSR_REL (CS_INT)37
|
|
#define CS_CSR_MULTI (CS_INT)38
|
|
#define CS_CON_OOB (CS_INT)39
|
|
#define CS_CON_INBAND (CS_INT)40
|
|
#define CS_CON_LOGICAL (CS_INT)41
|
|
#define CS_PROTO_TEXT (CS_INT)42
|
|
#define CS_PROTO_BULK (CS_INT)43
|
|
#define CS_REQ_URGNOTIF (CS_INT)44
|
|
#define CS_DATA_SENSITIVITY (CS_INT)45
|
|
#define CS_DATA_BOUNDARY (CS_INT)46
|
|
#define CS_PROTO_DYNAMIC (CS_INT)47
|
|
#define CS_PROTO_DYNPROC (CS_INT)48
|
|
#define CS_DATA_FLTN (CS_INT)49
|
|
#define CS_DATA_BITN (CS_INT)50
|
|
#define CS_OPTION_GET (CS_INT)51
|
|
#define CS_DATA_INT8 (CS_INT)52
|
|
#define CS_DATA_VOID (CS_INT)53
|
|
#define CS_DOL_BULK (CS_INT)54
|
|
#define CS_OBJECT_JAVA1 (CS_INT)55
|
|
#define CS_OBJECT_CHAR (CS_INT)56
|
|
#define CS_DATA_COLUMNSTATUS (CS_INT)57
|
|
#define CS_OBJECT_BINARY (CS_INT)58
|
|
#define CS_REQ_RESERVED1 (CS_INT)59
|
|
#define CS_WIDETABLES (CS_INT)60
|
|
#define CS_REQ_RESERVED2 (CS_INT)61
|
|
#define CS_DATA_UINT2 (CS_INT)62
|
|
#define CS_DATA_UINT4 (CS_INT)63
|
|
#define CS_DATA_UINT8 (CS_INT)64
|
|
#define CS_DATA_UINTN (CS_INT)65
|
|
#define CS_CUR_IMPLICIT (CS_INT)66
|
|
#define CS_DATA_UCHAR (CS_INT)67
|
|
#define CS_IMAGE_NCHAR (CS_INT)68
|
|
#define CS_BLOB_NCHAR_16 (CS_INT)69
|
|
#define CS_BLOB_NCHAR_8 (CS_INT)70
|
|
#define CS_BLOB_NCHAR_SCSU (CS_INT)71
|
|
#define CS_DATA_DATE (CS_INT)72
|
|
#define CS_DATA_TIME (CS_INT)73
|
|
#define CS_DATA_INTERVAL (CS_INT)74
|
|
#define CS_CSR_SCROLL (CS_INT)75
|
|
#define CS_CSR_SENSITIVE (CS_INT)76
|
|
#define CS_CSR_INSENSITIVE (CS_INT)77
|
|
#define CS_CSR_SEMISENSITIVE (CS_INT)78
|
|
#define CS_CSR_KEYSETDRIVEN (CS_INT)79
|
|
#define CS_REQ_SRVPKTSIZE (CS_INT)80
|
|
#define CS_DATA_UNITEXT (CS_INT)81
|
|
#define CS_CAP_EXTENDEDFAILOVER (CS_INT)82
|
|
#define CS_DATA_SINT1 (CS_INT)83
|
|
#define CS_REQ_LARGEIDENT (CS_INT)84
|
|
#define CS_REQ_BLOB_NCHAR_16 (CS_INT)85
|
|
#define CS_DATA_XML (CS_INT)86
|
|
#define CS_REQ_CURINFO3 (CS_INT)87
|
|
#define CS_REQ_DBRPC2 (CS_INT)88
|
|
#define CS_REQ_MIGRATE (CS_INT)89
|
|
#define CS_REQ_UNDEFINED (CS_INT)90
|
|
#define CS_REQ_RESERVED_091 (CS_INT)91
|
|
#define CS_REQ_RESERVED_092 (CS_INT)92
|
|
#define CS_REQ_RESERVED_093 (CS_INT)93
|
|
#define CS_DATA_BIGDATETIME (CS_INT)94
|
|
#define CS_DATA_BIGTIME (CS_INT)95
|
|
#define CS_RPCPARAM_LOB (CS_INT)96
|
|
#define CS_REQ_INSTID (CS_INT)97
|
|
#define CS_REQ_GRID (CS_INT)98
|
|
#define CS_REQ_DYN_BATCH (CS_INT)99
|
|
#define CS_REQ_LANG_BATCH (CS_INT)100
|
|
#define CS_REQ_RPC_BATCH (CS_INT)101
|
|
#define CS_DATA_LOBLOCATOR (CS_INT)102
|
|
#define CS_REQ_RESERVED_103 (CS_INT)103
|
|
#define CS_REQ_RESERVED_104 (CS_INT)104
|
|
#define CS_REQ_DYNAMIC_SUPPRESS_PARAMFMT (CS_INT)105
|
|
#define CS_REQ_RESERVED_106 (CS_INT)106
|
|
#define CS_REQ_READONLY (CS_INT)107
|
|
|
|
/*
|
|
** Minimum and maximum request capability values.
|
|
*/
|
|
#define CS_MIN_REQ_CAP CS_REQ_LANG
|
|
#define CS_MAX_REQ_CAP CS_REQ_READONLY
|
|
|
|
/*
|
|
** Capability response values.
|
|
*/
|
|
#define CS_RES_NOMSG (CS_INT)1
|
|
#define CS_RES_NOEED (CS_INT)2
|
|
#define CS_RES_NOPARAM (CS_INT)3
|
|
#define CS_DATA_NOINT1 (CS_INT)4
|
|
#define CS_DATA_NOINT2 (CS_INT)5
|
|
#define CS_DATA_NOINT4 (CS_INT)6
|
|
#define CS_DATA_NOBIT (CS_INT)7
|
|
#define CS_DATA_NOCHAR (CS_INT)8
|
|
#define CS_DATA_NOVCHAR (CS_INT)9
|
|
#define CS_DATA_NOBIN (CS_INT)10
|
|
#define CS_DATA_NOVBIN (CS_INT)11
|
|
#define CS_DATA_NOMNY8 (CS_INT)12
|
|
#define CS_DATA_NOMNY4 (CS_INT)13
|
|
#define CS_DATA_NODATE8 (CS_INT)14
|
|
#define CS_DATA_NODATE4 (CS_INT)15
|
|
#define CS_DATA_NOFLT4 (CS_INT)16
|
|
#define CS_DATA_NOFLT8 (CS_INT)17
|
|
#define CS_DATA_NONUM (CS_INT)18
|
|
#define CS_DATA_NOTEXT (CS_INT)19
|
|
#define CS_DATA_NOIMAGE (CS_INT)20
|
|
#define CS_DATA_NODEC (CS_INT)21
|
|
#define CS_DATA_NOLCHAR (CS_INT)22
|
|
#define CS_DATA_NOLBIN (CS_INT)23
|
|
#define CS_DATA_NOINTN (CS_INT)24
|
|
#define CS_DATA_NODATETIMEN (CS_INT)25
|
|
#define CS_DATA_NOMONEYN (CS_INT)26
|
|
#define CS_CON_NOOOB (CS_INT)27
|
|
#define CS_CON_NOINBAND (CS_INT)28
|
|
#define CS_PROTO_NOTEXT (CS_INT)29
|
|
#define CS_PROTO_NOBULK (CS_INT)30
|
|
#define CS_DATA_NOSENSITIVITY (CS_INT)31
|
|
#define CS_DATA_NOBOUNDARY (CS_INT)32
|
|
#define CS_RES_NOTDSDEBUG (CS_INT)33
|
|
#define CS_RES_NOSTRIPBLANKS (CS_INT)34
|
|
#define CS_DATA_NOINT8 (CS_INT)35
|
|
#define CS_OBJECT_NOJAVA1 (CS_INT)36
|
|
#define CS_OBJECT_NOCHAR (CS_INT)37
|
|
#define CS_DATA_NOCOLUMNSTATUS (CS_INT)38
|
|
#define CS_OBJECT_NOBINARY (CS_INT)39
|
|
#define CS_RES_RESERVED (CS_INT)40
|
|
#define CS_DATA_NOUINT2 (CS_INT)41
|
|
#define CS_DATA_NOUINT4 (CS_INT)42
|
|
#define CS_DATA_NOUINT8 (CS_INT)43
|
|
#define CS_DATA_NOUINTN (CS_INT)44
|
|
#define CS_NOWIDETABLES (CS_INT)45
|
|
#define CS_DATA_NOUCHAR (CS_INT)46
|
|
#define CS_IMAGE_NONCHAR (CS_INT)47
|
|
#define CS_BLOB_NONCHAR_16 (CS_INT)48
|
|
#define CS_BLOB_NONCHAR_8 (CS_INT)49
|
|
#define CS_BLOB_NONCHAR_SCSU (CS_INT)50
|
|
#define CS_DATA_NODATE (CS_INT)51
|
|
#define CS_DATA_NOTIME (CS_INT)52
|
|
#define CS_DATA_NOINTERVAL (CS_INT)53
|
|
#define CS_DATA_NOUNITEXT (CS_INT)54
|
|
#define CS_DATA_NOSINT1 (CS_INT)55
|
|
#define CS_NO_LARGEIDENT (CS_INT)56
|
|
#define CS_NO_BLOB_NCHAR_16 (CS_INT)57
|
|
#define CS_NO_SRVPKTSIZE (CS_INT)58
|
|
#define CS_DATA_NOXML (CS_INT)59
|
|
#define CS_NONINT_RETURN_VALUE (CS_INT)60
|
|
#define CS_RES_NOXNLMETADATA (CS_INT)61
|
|
#define CS_RES_SUPPRESS_FMT (CS_INT)62
|
|
#define CS_RES_SUPPRESS_DONEINPROC (CS_INT)63
|
|
#define CS_UNUSED_RES (CS_INT)64
|
|
#define CS_DATA_NOBIGDATETIME (CS_INT)65
|
|
#define CS_DATA_NOBIGTIME (CS_INT)66
|
|
#define CS_RES_NO_TDSCONTROL (CS_INT)67
|
|
#define CS_RPCPARAM_NOLOB (CS_INT)68
|
|
#define CS_DATA_NOLOBLOCATOR (CS_INT)69
|
|
#define CS_RES_RESERVED_70 (CS_INT)70
|
|
#define CS_RES_RESERVED_71 (CS_INT)71
|
|
#define CS_RES_LIST_DR_MAP (CS_INT)72
|
|
#define CS_RES_DR_NOKILL (CS_INT)73
|
|
|
|
/*
|
|
** Minimum and maximum response capability values.
|
|
*/
|
|
#define CS_MIN_RES_CAP CS_RES_NOMSG
|
|
#define CS_MAX_RES_CAP CS_RES_DR_NOKILL
|
|
|
|
/*
|
|
** Minimum and maximum of all capabilities defined above.
|
|
*/
|
|
#define CS_MIN_CAPVALUE CS_REQ_LANG
|
|
#define CS_MAX_CAPVALUE CS_REQ_READONLY
|
|
|
|
/*
|
|
** Size of area to store capabilities. The array len must be greater
|
|
** than CS_CAP_ARRAYLEN additional capabilities to be added.
|
|
*/
|
|
#define CS_CAP_ARRAYLEN 16
|
|
|
|
/*
|
|
** Maximum OID length (bytes)
|
|
*/
|
|
#define CS_MAX_OIDLEN 255
|
|
|
|
/*
|
|
** Index used by access macros so that the first byte in the array will
|
|
** contain the high order bit.
|
|
*/
|
|
#define CS_CAP_IDX(B) ((CS_CAP_ARRAYLEN - (B)/ CS_BITS_PER_BYTE) - 1)
|
|
|
|
/*
|
|
** Data structure defining storage for capabilities.
|
|
*/
|
|
typedef struct _cs_cap_type
|
|
{
|
|
CS_BYTE mask[CS_CAP_ARRAYLEN];
|
|
} CS_CAP_TYPE;
|
|
|
|
/*
|
|
** Access macros for CS_CAP_TYPE structure.
|
|
*/
|
|
#define CS_SET_CAPMASK(M, B) ((M)->mask[CS_CAP_IDX(B)] |= \
|
|
(1 << ((B) % CS_BITS_PER_BYTE)))
|
|
#define CS_CLR_CAPMASK(M, B) ((M)->mask[CS_CAP_IDX(B)] &= \
|
|
~(1 << ((B) % CS_BITS_PER_BYTE)))
|
|
#define CS_TST_CAPMASK(M, B) ((M)->mask[CS_CAP_IDX(B)] & \
|
|
(1 << ((B) % CS_BITS_PER_BYTE)))
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Defines used in Open Client/Server structures.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** Define I/O types in the CS_IODESC structure.
|
|
*/
|
|
#define CS_IODATA (CS_INT)1600
|
|
#define CS_IOPARTIAL (CS_INT)1601
|
|
|
|
/*
|
|
** Define status values for the status field of the CS_SERVERMSG and
|
|
** CS_CLIENTMSG structures.
|
|
*/
|
|
#define CS_HASEED (CS_INT)0x1
|
|
#define CS_FIRST_CHUNK (CS_INT)0x2
|
|
#define CS_LAST_CHUNK (CS_INT)0x4
|
|
#define CS_EEDINFO (CS_INT)0x8
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Hidden information structures.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
#ifndef CS__INTERNAL_STRUCTS
|
|
|
|
/*
|
|
** If passing code through lint, define the hidden structures as void.
|
|
*/
|
|
#ifdef lint
|
|
|
|
#ifndef CS_LOGINFO
|
|
#define CS_LOGINFO CS_VOID
|
|
#endif /* CS_LOGINFO */
|
|
|
|
#ifndef CS_BLKDESC
|
|
#define CS_BLKDESC CS_VOID
|
|
#endif /* CS_BLKDESC */
|
|
|
|
#ifndef CS_BLK_ROW
|
|
#define CS_BLK_ROW CS_VOID
|
|
#endif /* CS_BLK_ROW */
|
|
|
|
#else /* lint */
|
|
|
|
/*
|
|
** Use anonymous structure tags to define the hidden structures.
|
|
*/
|
|
typedef struct _csloginfo CS_LOGINFO;
|
|
typedef struct _cs_blkdesc CS_BLKDESC;
|
|
typedef struct _bulkrow CS_BLK_ROW;
|
|
|
|
#endif /* lint */
|
|
|
|
#endif /* CS__INTERNAL_STRUCTS */
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** User-accessible information structures.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** Define the I/O descriptor structure used by Open Client/Server.
|
|
**
|
|
** iotype Indicates the type of I/O to perform. For text
|
|
** and image operations, iotype always has the
|
|
** value CS_IODATA.
|
|
**
|
|
** datatype The datatype of the data object. The only legal
|
|
** values for datatype are CS_TEXT_TYPE and
|
|
** CS_IMAGE_TYPE and CS_XML_TYPE.
|
|
**
|
|
** *locale A pointer to a CS_LOCALE structure containing
|
|
** localization information for the text or image
|
|
** value. Set locale to NULL if localization
|
|
** information is not required.
|
|
**
|
|
** usertype The SQL Server user-defined datatype of the data
|
|
** object, if any.
|
|
**
|
|
** total_txtlen The total length, in bytes, of the text or image
|
|
** value.
|
|
**
|
|
** offset Reserved for future use.
|
|
**
|
|
** log_on_update Whether the update for this text object should
|
|
** be logged or not.
|
|
**
|
|
** name The name of the text or image column. name is a
|
|
** string of the form table.column.
|
|
**
|
|
** namelen The actual length of name
|
|
**
|
|
** timestamp The text timestamp of the column. A text
|
|
** timestamp marks the time of a text or image
|
|
** column's last modification.
|
|
**
|
|
** timestamplen The length, in bytes, of timestamp.
|
|
**
|
|
** textptr The text pointer for the column. A text pointer
|
|
** is an internal server pointer that points to the
|
|
** data for a text or image column. textptr identifies
|
|
** the target column in a send-data operation.
|
|
**
|
|
** textptrlen The length, in bytes, of textptr.
|
|
*/
|
|
|
|
typedef struct _cs_iodesc
|
|
{
|
|
CS_INT iotype;
|
|
CS_INT datatype;
|
|
CS_LOCALE *locale;
|
|
CS_INT usertype;
|
|
CS_INT total_txtlen;
|
|
CS_INT offset;
|
|
CS_BOOL log_on_update;
|
|
CS_CHAR name[CS_OBJ_NAME];
|
|
CS_INT namelen;
|
|
CS_BYTE timestamp[CS_TS_SIZE];
|
|
CS_INT timestamplen;
|
|
CS_BYTE textptr[CS_TP_SIZE];
|
|
CS_INT textptrlen;
|
|
CS_INT delete_length;
|
|
} CS_IODESC;
|
|
|
|
/*
|
|
** Define the browse descriptor structure used by Open Client/Server.
|
|
**
|
|
** status A bit mask of either CS_EXPRESSION and/or CS_RENAMED.
|
|
**
|
|
** isbrowse CS_TRUE the column can be browse-mode updated.
|
|
**
|
|
** origname The original name of the column in the database.
|
|
**
|
|
** orignlen Length of origname in bytes.
|
|
**
|
|
** tablenum The number of the table to which the column
|
|
** belongs. The first table in a select statement's
|
|
** from-list is table number 1, the second number 2,
|
|
** and so forth.
|
|
**
|
|
** tablename The name of the table to which the column belongs.
|
|
**
|
|
** tabnlen Length of tablename in bytes.
|
|
**
|
|
*/
|
|
#if defined(CS_NO_LARGE_IDENTIFIERS)
|
|
/*
|
|
** In pre-15.0 versions the (old) value for CS_MAX_NAME was used for the
|
|
** origname array declaration. Starting from version 15.0, CS_MAX_CHAR
|
|
** is used to define this character array size.
|
|
*/
|
|
typedef struct _cs_browsedesc
|
|
{
|
|
CS_INT status;
|
|
CS_BOOL isbrowse;
|
|
CS_CHAR origname[CS_MAX_NAME];
|
|
CS_INT orignlen;
|
|
CS_INT tablenum;
|
|
CS_CHAR tablename[CS_OBJ_NAME];
|
|
CS_INT tabnlen;
|
|
} CS_BROWSEDESC;
|
|
#else
|
|
typedef struct _cs_browsedesc
|
|
{
|
|
CS_INT status;
|
|
CS_BOOL isbrowse;
|
|
CS_CHAR origname[CS_MAX_CHAR];
|
|
CS_INT orignlen;
|
|
CS_INT tablenum;
|
|
CS_CHAR tablename[CS_OBJ_NAME];
|
|
CS_INT tabnlen;
|
|
} CS_BROWSEDESC;
|
|
#endif
|
|
|
|
/*
|
|
** Define the server message structure used by Open Client/Server.
|
|
**
|
|
** msgnumber The server message number.
|
|
**
|
|
** state The server error state.
|
|
**
|
|
** severity The severity of the message.
|
|
**
|
|
** text The text of the error string. If an application
|
|
** is not sequencing messages, text is guaranteed
|
|
** to be null-terminated, even if it has been
|
|
** truncated. If an application is sequencing
|
|
** messages, text is null-terminated only if it is
|
|
** the last chunk of a sequenced message.
|
|
**
|
|
** textlen The length, in bytes, of text.
|
|
**
|
|
** svrname The name of the server that generated the message.
|
|
**
|
|
** svrnlen The length, in bytes, of svrname.
|
|
**
|
|
** proc The name of the stored procedure which caused
|
|
** the message, if any.
|
|
**
|
|
** proclen The length, in bytes, of proc.
|
|
**
|
|
** line The line number, if any, of the line that caused
|
|
** the message. line can be a line number in a
|
|
** stored procedure or a line number in a command
|
|
** batch.
|
|
**
|
|
** status A bitmask used to indicate various types of
|
|
** information, such as whether or not extended
|
|
** error data is included with the message.
|
|
**
|
|
** sqlstate SQL state information.
|
|
**
|
|
** sqlstatelen The length, in bytes, of sqlstate.
|
|
**
|
|
*/
|
|
#if defined(CS_NO_LARGE_IDENTIFIERS)
|
|
/*
|
|
** In pre-15.0 versions the (old) value for CS_MAX_NAME was used for the
|
|
** name array declarations. Starting from version 15.0, CS_MAX_CHAR is
|
|
** used to define these character array sizes.
|
|
*/
|
|
typedef struct _cs_servermsg
|
|
{
|
|
CS_MSGNUM msgnumber;
|
|
CS_INT state;
|
|
CS_INT severity;
|
|
CS_CHAR text[CS_MAX_MSG];
|
|
CS_INT textlen;
|
|
CS_CHAR svrname[CS_MAX_NAME];
|
|
CS_INT svrnlen;
|
|
CS_CHAR proc[CS_MAX_NAME];
|
|
CS_INT proclen;
|
|
CS_INT line;
|
|
CS_INT status;
|
|
CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
|
|
CS_INT sqlstatelen;
|
|
} CS_SERVERMSG;
|
|
#else
|
|
typedef struct _cs_servermsg
|
|
{
|
|
CS_MSGNUM msgnumber;
|
|
CS_INT state;
|
|
CS_INT severity;
|
|
CS_CHAR text[CS_MAX_MSG];
|
|
CS_INT textlen;
|
|
CS_CHAR svrname[CS_MAX_CHAR];
|
|
CS_INT svrnlen;
|
|
CS_CHAR proc[CS_MAX_CHAR];
|
|
CS_INT proclen;
|
|
CS_INT line;
|
|
CS_INT status;
|
|
CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
|
|
CS_INT sqlstatelen;
|
|
} CS_SERVERMSG;
|
|
#endif
|
|
|
|
/*
|
|
** Define the client message structure used by Open Client/Server.
|
|
**
|
|
** severity A symbolic value representing the severity of
|
|
** the message.
|
|
**
|
|
** msgnumber The message number. For information on how to
|
|
** interpret this number in Client-Library
|
|
** applications, see the Client-Library Messages
|
|
** topics in the Open Client documentation.
|
|
**
|
|
** msgstring The message string. If an application is not
|
|
** sequencing messages, msgstring is guaranteed to
|
|
** be null-terminated, even if it has been truncated.
|
|
** If an application is sequencing messages,
|
|
** msgstring is null-terminated only if it is the
|
|
** last chunk of a sequenced message.
|
|
**
|
|
** msgstringlen The length, in bytes, of msgstring.
|
|
**
|
|
** osnumber An error may have involved interactions the
|
|
** operating system (OS). If so, the OS error
|
|
** number would be stored here. Otherwise,
|
|
** this will be zero.
|
|
**
|
|
** osstring The operating system error text (if any).
|
|
**
|
|
** osstringlen The length, in bytes, of osstring.
|
|
**
|
|
** status A bitmask used to indicate various types of
|
|
** information, such as whether or not this is the
|
|
** first, a middle, or the last chunk of an error
|
|
** message.
|
|
**
|
|
** sqlstate SQL state information.
|
|
**
|
|
** sqlstatelen The length, in bytes, of sqlstate.
|
|
**
|
|
*/
|
|
typedef struct _cs_clientmsg
|
|
{
|
|
CS_INT severity;
|
|
CS_MSGNUM msgnumber;
|
|
CS_CHAR msgstring[CS_MAX_MSG];
|
|
CS_INT msgstringlen;
|
|
CS_INT osnumber;
|
|
CS_CHAR osstring[CS_MAX_MSG];
|
|
CS_INT osstringlen;
|
|
CS_INT status;
|
|
CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
|
|
CS_INT sqlstatelen;
|
|
} CS_CLIENTMSG;
|
|
|
|
/*
|
|
** Define the constants an application tests for in the DONEPROC callback
|
|
*/
|
|
#define CS_TDS_DONEPROC_TYPE (CS_INT)1
|
|
#define CS_TDS_DONEINPROC_TYPE (CS_INT)2
|
|
|
|
/*
|
|
** Define the parameter information structure used by contol message callbacks.
|
|
*/
|
|
typedef enum _cs_ctlparams
|
|
{
|
|
CS_CTL_UNKNOWN = 0,
|
|
CS_CTL_GROUPNAME = 1,
|
|
CS_CTL_GENERATION = 2,
|
|
CS_CTL_DSNAME = 3,
|
|
CS_CTL_ADDRSTR = 4,
|
|
CS_CTL_HANAME = 5,
|
|
CS_CTL_OPTION = 6
|
|
} CS_CTLPARAMS_T;
|
|
|
|
typedef struct _cs_ctlinfo
|
|
{
|
|
CS_CTLPARAMS_T ctltype;
|
|
CS_DATAFMT ctlfmt;
|
|
CS_UBIGINT ctlintinfo;
|
|
CS_TRANADDR ctladdr;
|
|
CS_CHAR *ctlstring;
|
|
} CS_CTLINFO_T;
|
|
|
|
/*
|
|
** The only defined option is to mark that a node can be connected
|
|
** to for readonly operations.
|
|
*/
|
|
#define CS_CTLOPT_READONLY 0x01
|
|
|
|
/*****************************************************************************
|
|
**
|
|
** Define user-accessable functions for Client/Server Library here.
|
|
**
|
|
*****************************************************************************/
|
|
|
|
/*
|
|
** Declare all functions.
|
|
*/
|
|
CS_START_EXTERN_C
|
|
|
|
/* cscalc.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_calc(
|
|
CS_CONTEXT *context,
|
|
CS_INT op,
|
|
CS_INT datatype,
|
|
CS_VOID *var1,
|
|
CS_VOID *var2,
|
|
CS_VOID *dest
|
|
);
|
|
|
|
/* cscmp.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_cmp(
|
|
CS_CONTEXT *context,
|
|
CS_INT datatype,
|
|
CS_VOID *var1,
|
|
CS_VOID *var2,
|
|
CS_INT *result
|
|
);
|
|
|
|
/* cscnvrt.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_convert(
|
|
CS_CONTEXT *context,
|
|
CS_DATAFMT *srcfmt,
|
|
CS_VOID *srcdata,
|
|
CS_DATAFMT *destfmt,
|
|
CS_VOID *destdata,
|
|
CS_INT *outlen
|
|
);
|
|
extern CS_RETCODE CS_PUBLIC cs_will_convert(
|
|
CS_CONTEXT *context,
|
|
CS_INT srctype,
|
|
CS_INT desttype,
|
|
CS_BOOL *result
|
|
);
|
|
extern CS_RETCODE CS_PUBLIC cs_set_convert(
|
|
CS_CONTEXT *context,
|
|
CS_INT action,
|
|
CS_INT srctype,
|
|
CS_INT desttype,
|
|
CS_CONV_FUNC *buffer
|
|
);
|
|
extern CS_RETCODE CS_PUBLIC cs_setnull(
|
|
CS_CONTEXT *context,
|
|
CS_DATAFMT *datafmt,
|
|
CS_VOID *buf,
|
|
CS_INT buflen
|
|
);
|
|
|
|
/* csconfig.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_config(
|
|
CS_CONTEXT *context,
|
|
CS_INT action,
|
|
CS_INT property,
|
|
CS_VOID *buf,
|
|
CS_INT buflen,
|
|
CS_INT *outlen
|
|
);
|
|
|
|
/* csctxall.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_ctx_alloc(
|
|
CS_INT version,
|
|
CS_CONTEXT **outptr
|
|
);
|
|
|
|
/* csctxdrp.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_ctx_drop(
|
|
CS_CONTEXT *context
|
|
);
|
|
|
|
/* csctxglb.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_ctx_global(
|
|
CS_INT version,
|
|
CS_CONTEXT **outptr
|
|
);
|
|
|
|
/* csobjs.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_objects(
|
|
CS_CONTEXT *context,
|
|
CS_INT action,
|
|
CS_OBJNAME *objname,
|
|
CS_OBJDATA *objdata
|
|
);
|
|
|
|
/* csdiag.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_diag(
|
|
CS_CONTEXT *context,
|
|
CS_INT operation,
|
|
CS_INT type,
|
|
CS_INT idx,
|
|
CS_VOID *buffer
|
|
);
|
|
|
|
/* csdtcrak.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_dt_crack(
|
|
CS_CONTEXT *context,
|
|
CS_INT datetype,
|
|
CS_VOID *dateval,
|
|
CS_DATEREC *daterec
|
|
);
|
|
|
|
/* csdtinfo.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_dt_info(
|
|
CS_CONTEXT *context,
|
|
CS_INT action,
|
|
CS_LOCALE *locale,
|
|
CS_INT type,
|
|
CS_INT item,
|
|
CS_VOID *buffer,
|
|
CS_INT buflen,
|
|
CS_INT *outlen
|
|
);
|
|
|
|
/* csloc.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_locale(
|
|
CS_CONTEXT *context,
|
|
CS_INT action,
|
|
CS_LOCALE *locale,
|
|
CS_INT type,
|
|
CS_CHAR *buffer,
|
|
CS_INT buflen,
|
|
CS_INT *outlen
|
|
);
|
|
|
|
/* cslocall.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_loc_alloc(
|
|
CS_CONTEXT *context,
|
|
CS_LOCALE **loc_pointer
|
|
);
|
|
|
|
/* cslocator.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_locator(
|
|
CS_CONTEXT *context,
|
|
CS_INT action,
|
|
CS_LOCATOR *locator,
|
|
CS_INT type,
|
|
CS_VOID *buffer,
|
|
CS_INT buflen,
|
|
CS_INT *outlen);
|
|
extern CS_RETCODE CS_PUBLIC cs_locator_alloc(
|
|
CS_CONTEXT *context,
|
|
CS_LOCATOR **locator);
|
|
extern CS_RETCODE CS_PUBLIC cs_locator_drop(
|
|
CS_CONTEXT *context,
|
|
CS_LOCATOR *locator);
|
|
|
|
/* cslocdrp.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_loc_drop(
|
|
CS_CONTEXT *context,
|
|
CS_LOCALE *locale
|
|
);
|
|
|
|
/* csstr.c */
|
|
extern size_t CS_PUBLIC cs_strlcpy(
|
|
char *target_str,
|
|
const char *source_str,
|
|
size_t target_size
|
|
);
|
|
|
|
extern size_t CS_PUBLIC cs_strlcat(
|
|
char *target_str,
|
|
const char *source_str,
|
|
size_t target_size
|
|
);
|
|
|
|
extern void CS_PUBLIC cs_snprintf(
|
|
char *str,
|
|
size_t size,
|
|
const char *format,
|
|
...
|
|
);
|
|
|
|
#ifdef CS__INTERNAL_STRUCTS
|
|
extern CS_RETCODE CS_VARARGS cs_strbuild(
|
|
CS_CONTEXT *context,
|
|
...
|
|
);
|
|
#else
|
|
extern CS_RETCODE CS_VARARGS cs_strbuild(
|
|
CS_CONTEXT *context,
|
|
CS_CHAR *buf,
|
|
CS_INT buflen,
|
|
CS_INT *outlen,
|
|
CS_CHAR *text,
|
|
CS_INT textlen,
|
|
...
|
|
);
|
|
#endif /* CS__INTERNAL_STRUCTS */
|
|
|
|
/* csstrcmp.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_strcmp(
|
|
CS_CONTEXT *context,
|
|
CS_LOCALE *locale,
|
|
CS_INT type,
|
|
CS_CHAR *str1,
|
|
CS_INT len1,
|
|
CS_CHAR *str2,
|
|
CS_INT len2,
|
|
CS_INT *result
|
|
);
|
|
|
|
/* cstime.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_time(
|
|
CS_CONTEXT *context,
|
|
CS_LOCALE *locale,
|
|
CS_VOID *buf,
|
|
CS_INT buflen,
|
|
CS_INT *outlen,
|
|
CS_DATEREC *drec
|
|
);
|
|
|
|
/* csmancnt.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_manage_convert(
|
|
CS_CONTEXT *context,
|
|
CS_INT action,
|
|
CS_INT srctype,
|
|
CS_CHAR *srcname,
|
|
CS_INT srcnamelen,
|
|
CS_INT desttype,
|
|
CS_CHAR *destname,
|
|
CS_INT destnamelen,
|
|
CS_INT *maxmultiplier,
|
|
CS_CONV_FUNC *func
|
|
);
|
|
|
|
/* csmaxmul.c */
|
|
extern CS_RETCODE CS_PUBLIC cs_conv_mult(
|
|
CS_CONTEXT *context,
|
|
CS_LOCALE *srcloc,
|
|
CS_LOCALE *destloc,
|
|
CS_INT *multiplier
|
|
);
|
|
|
|
CS_END_EXTERN_C
|
|
|
|
#endif /* __CSPUBLIC_H__ */
|