00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _cspublic_h_
00021 #define _cspublic_h_
00022
00023 #include <cstypes.h>
00024
00025 #undef TDS_STATIC_CAST
00026 #ifdef __cplusplus
00027 #define TDS_STATIC_CAST(type, a) static_cast<type>(a)
00028 extern "C"
00029 {
00030 #if 0
00031 }
00032 #endif
00033 #else
00034 #define TDS_STATIC_CAST(type, a) ((type)(a))
00035 #endif
00036
00037 static const char rcsid_cspublic_h[] = "$Id: cspublic.h,v 1.58.2.2 2008/09/08 17:48:50 jklowden Exp $";
00038 static const void *const no_unused_cspublic_h_warn[] = { rcsid_cspublic_h, no_unused_cspublic_h_warn };
00039
00040 #define CS_PUBLIC
00041 #define CS_STATIC static
00042
00043 #define CS_SUCCEED 1
00044 #define CS_FAIL 0
00045 #define CS_MEM_ERROR -1
00046 #define CS_PENDING -2
00047 #define CS_QUIET -3
00048 #define CS_BUSY -4
00049 #define CS_INTERRUPT -5
00050 #define CS_BLK_HAS_TEXT -6
00051 #define CS_CONTINUE -7
00052 #define CS_FATAL -8
00053 #define CS_RET_HAFAILOVER -9
00054 #define CS_UNSUPPORTED -10
00055
00056 #define CS_CANCELED -202
00057 #define CS_ROW_FAIL -203
00058 #define CS_END_DATA -204
00059 #define CS_END_RESULTS -205
00060 #define CS_END_ITEM -206
00061 #define CS_NOMSG -207
00062 #define CS_TIMED_OUT -208
00063
00064 #define CS_SIZEOF(x) sizeof(x)
00065
00066 #define CS_LAYER(x) (((x) >> 24) & 0xFF)
00067 #define CS_ORIGIN(x) (((x) >> 16) & 0xFF)
00068 #define CS_SEVERITY(x) (((x) >> 8) & 0xFF)
00069 #define CS_NUMBER(x) ((x) & 0xFF)
00070
00071
00072 typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (CS_CONTEXT *, CS_CLIENTMSG *);
00073 typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_CLIENTMSG *);
00074 typedef CS_RETCODE(*CS_SERVERMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_SERVERMSG *);
00075
00076
00077 #define CS_IODATA TDS_STATIC_CAST(CS_INT, 1600)
00078 #define CS_SRC_VALUE -2562
00079
00080
00081
00082
00083 #define CS_HASEED 0x01
00084
00085 typedef struct _cs_blkdesc CS_BLKDESC;
00086
00087
00088 #define CS_REQ_LANG 1
00089 #define CS_REQ_RPC 2
00090 #define CS_REQ_NOTIF 3
00091 #define CS_REQ_MSTMT 4
00092 #define CS_REQ_BCP 5
00093 #define CS_REQ_CURSOR 6
00094 #define CS_REQ_DYN 7
00095 #define CS_REQ_MSG 8
00096 #define CS_REQ_PARAM 9
00097 #define CS_DATA_INT1 10
00098 #define CS_DATA_INT2 11
00099 #define CS_DATA_INT4 12
00100 #define CS_DATA_BIT 13
00101 #define CS_DATA_CHAR 14
00102 #define CS_DATA_VCHAR 15
00103 #define CS_DATA_BIN 16
00104 #define CS_DATA_VBIN 17
00105 #define CS_DATA_MNY8 18
00106 #define CS_DATA_MNY4 19
00107 #define CS_DATA_DATE8 20
00108 #define CS_DATA_DATE4 21
00109 #define CS_DATA_FLT4 22
00110 #define CS_DATA_FLT8 23
00111 #define CS_DATA_NUM 24
00112 #define CS_DATA_TEXT 25
00113 #define CS_DATA_IMAGE 26
00114 #define CS_DATA_DEC 27
00115 #define CS_DATA_LCHAR 28
00116 #define CS_DATA_LBIN 29
00117 #define CS_DATA_INTN 30
00118 #define CS_DATA_DATETIMEN 31
00119 #define CS_DATA_MONEYN 32
00120 #define CS_CSR_PREV 33
00121 #define CS_CSR_FIRST 34
00122 #define CS_CSR_LAST 35
00123 #define CS_CSR_ABS 36
00124 #define CS_CSR_REL 37
00125 #define CS_CSR_MULTI 38
00126 #define CS_CON_OOB 39
00127 #define CS_CON_INBAND 40
00128 #define CS_CON_LOGICAL 41
00129 #define CS_PROTO_TEXT 42
00130 #define CS_PROTO_BULK 43
00131 #define CS_REQ_URGNOTIF 44
00132 #define CS_DATA_SENSITIVITY 45
00133 #define CS_DATA_BOUNDARY 46
00134 #define CS_PROTO_DYNAMIC 47
00135 #define CS_PROTO_DYNPROC 48
00136 #define CS_DATA_FLTN 49
00137 #define CS_DATA_BITN 50
00138 #define CS_OPTION_GET 51
00139 #define CS_DATA_INT8 52
00140 #define CS_DATA_VOID 53
00141
00142
00143 #define CS_RES_NOMSG 1
00144 #define CS_RES_NOEED 2
00145 #define CS_RES_NOPARAM 3
00146 #define CS_DATA_NOINT1 4
00147 #define CS_DATA_NOINT2 5
00148 #define CS_DATA_NOINT4 6
00149 #define CS_DATA_NOBIT 7
00150 #define CS_DATA_NOCHAR 8
00151 #define CS_DATA_NOVCHAR 9
00152 #define CS_DATA_NOBIN 10
00153 #define CS_DATA_NOVBIN 11
00154 #define CS_DATA_NOMNY8 12
00155 #define CS_DATA_NOMNY4 13
00156 #define CS_DATA_NODATE8 14
00157 #define CS_DATA_NODATE4 15
00158 #define CS_DATA_NOFLT4 16
00159 #define CS_DATA_NOFLT8 17
00160 #define CS_DATA_NONUM 18
00161 #define CS_DATA_NOTEXT 19
00162 #define CS_DATA_NOIMAGE 20
00163 #define CS_DATA_NODEC 21
00164 #define CS_DATA_NOLCHAR 22
00165 #define CS_DATA_NOLBIN 23
00166 #define CS_DATA_NOINTN 24
00167 #define CS_DATA_NODATETIMEN 25
00168 #define CS_DATA_NOMONEYN 26
00169 #define CS_CON_NOOOB 27
00170 #define CS_CON_NOINBAND 28
00171 #define CS_PROTO_NOTEXT 29
00172 #define CS_PROTO_NOBULK 30
00173 #define CS_DATA_NOSENSITIVITY 31
00174 #define CS_DATA_NOBOUNDARY 32
00175 #define CS_RES_NOTDSDEBUG 33
00176 #define CS_RES_NOSTRIPBLANKS 34
00177 #define CS_DATA_NOINT8 35
00178
00179
00180 enum
00181 {
00182
00183
00184
00185
00186 CS_USERNAME = 9100,
00187 #define CS_USERNAME CS_USERNAME
00188 CS_PASSWORD = 9101,
00189 #define CS_PASSWORD CS_PASSWORD
00190 CS_APPNAME = 9102,
00191 #define CS_APPNAME CS_APPNAME
00192 CS_HOSTNAME = 9103,
00193 #define CS_HOSTNAME CS_HOSTNAME
00194 CS_LOGIN_STATUS = 9104,
00195 #define CS_LOGIN_STATUS CS_LOGIN_STATUS
00196 CS_TDS_VERSION = 9105,
00197 #define CS_TDS_VERSION CS_TDS_VERSION
00198 CS_CHARSETCNV = 9106,
00199 #define CS_CHARSETCNV CS_CHARSETCNV
00200 CS_PACKETSIZE = 9107,
00201 #define CS_PACKETSIZE CS_PACKETSIZE
00202 CS_USERDATA = 9108,
00203 #define CS_USERDATA CS_USERDATA
00204 CS_NETIO = 9110,
00205 #define CS_NETIO CS_NETIO
00206 CS_TEXTLIMIT = 9112,
00207 #define CS_TEXTLIMIT CS_TEXTLIMIT
00208 CS_HIDDEN_KEYS = 9113,
00209 #define CS_HIDDEN_KEYS CS_HIDDEN_KEYS
00210 CS_VERSION = 9114,
00211 #define CS_VERSION CS_VERSION
00212 CS_IFILE = 9115,
00213 #define CS_IFILE CS_IFILE
00214 CS_LOGIN_TIMEOUT = 9116,
00215 #define CS_LOGIN_TIMEOUT CS_LOGIN_TIMEOUT
00216 CS_TIMEOUT = 9117,
00217 #define CS_TIMEOUT CS_TIMEOUT
00218 CS_MAX_CONNECT = 9118,
00219 #define CS_MAX_CONNECT CS_MAX_CONNECT
00220 CS_EXPOSE_FMTS = 9120,
00221 #define CS_EXPOSE_FMTS CS_EXPOSE_FMTS
00222 CS_EXTRA_INF = 9121,
00223 #define CS_EXTRA_INF CS_EXTRA_INF
00224 CS_ANSI_BINDS = 9123,
00225 #define CS_ANSI_BINDS CS_ANSI_BINDS
00226 CS_BULK_LOGIN = 9124,
00227 #define CS_BULK_LOGIN CS_BULK_LOGIN
00228 CS_LOC_PROP = 9125,
00229 #define CS_LOC_PROP CS_LOC_PROP
00230 CS_PARENT_HANDLE = 9130,
00231 #define CS_PARENT_HANDLE CS_PARENT_HANDLE
00232 CS_EED_CMD = 9131,
00233 #define CS_EED_CMD CS_EED_CMD
00234 CS_DIAG_TIMEOUT = 9132,
00235 #define CS_DIAG_TIMEOUT CS_DIAG_TIMEOUT
00236 CS_DISABLE_POLL = 9133,
00237 #define CS_DISABLE_POLL CS_DISABLE_POLL
00238 CS_SEC_ENCRYPTION = 9135,
00239 #define CS_SEC_ENCRYPTION CS_SEC_ENCRYPTION
00240 CS_SEC_CHALLENGE = 9136,
00241 #define CS_SEC_CHALLENGE CS_SEC_CHALLENGE
00242 CS_SEC_NEGOTIATE = 9137,
00243 #define CS_SEC_NEGOTIATE CS_SEC_NEGOTIATE
00244 CS_CON_STATUS = 9143,
00245 #define CS_CON_STATUS CS_CON_STATUS
00246 CS_VER_STRING = 9144,
00247 #define CS_VER_STRING CS_VER_STRING
00248 CS_SERVERNAME = 9146,
00249 #define CS_SERVERNAME CS_SERVERNAME
00250 CS_SEC_APPDEFINED = 9149,
00251 #define CS_SEC_APPDEFINED CS_SEC_APPDEFINED
00252 CS_STICKY_BINDS = 9151,
00253 #define CS_STICKY_BINDS CS_STICKY_BINDS
00254 CS_SERVERADDR = 9206,
00255 #define CS_SERVERADDR CS_SERVERADDR
00256 CS_PORT = 9300
00257 #define CS_PORT CS_PORT
00258 };
00259
00260
00261 enum
00262 {
00263 CS_ADD = 1,
00264 CS_SUB,
00265 CS_MULT,
00266 CS_DIV
00267 };
00268
00269 enum
00270 {
00271 CS_TDS_40 = 7360,
00272 CS_TDS_42,
00273 CS_TDS_46,
00274 CS_TDS_495,
00275 CS_TDS_50,
00276 CS_TDS_70,
00277 CS_TDS_80
00278 };
00279
00280
00281 #define CS_HIDDEN (1 << 0)
00282 #define CS_KEY (1 << 1)
00283 #define CS_VERSION_KEY (1 << 2)
00284 #define CS_NODATA (1 << 3)
00285 #define CS_UPDATABLE (1 << 4)
00286 #define CS_CANBENULL (1 << 5)
00287 #define CS_DESCIN (1 << 6)
00288 #define CS_DESCOUT (1 << 7)
00289 #define CS_INPUTVALUE (1 << 8)
00290 #define CS_UPDATECOL (1 << 9)
00291 #define CS_RETURN (1 << 10)
00292 #define CS_TIMESTAMP (1 << 13)
00293 #define CS_NODEFAULT (1 << 14)
00294 #define CS_IDENTITY (1 << 15)
00295
00296
00297
00298
00299
00300 #define CS_GOODDATA 0
00301 #define CS_NULLDATA (-1)
00302
00303
00304 #define CS_CONSTAT_CONNECTED 0x01
00305 #define CS_CONSTAT_DEAD 0x02
00306
00307
00308
00309
00310
00311 #define CS_CURSOR_DECLARE 700
00312 #define CS_CURSOR_OPEN 701
00313 #define CS_CURSOR_ROWS 703
00314 #define CS_CURSOR_UPDATE 704
00315 #define CS_CURSOR_DELETE 705
00316 #define CS_CURSOR_CLOSE 706
00317 #define CS_CURSOR_DEALLOC 707
00318 #define CS_CURSOR_OPTION 725
00319
00320 #define CS_FOR_UPDATE TDS_STATIC_CAST(CS_INT, 0x1)
00321 #define CS_READ_ONLY TDS_STATIC_CAST(CS_INT, 0x2)
00322 #define CS_RESTORE_OPEN TDS_STATIC_CAST(CS_INT, 0x8)
00323 #define CS_IMPLICIT_CURSOR TDS_STATIC_CAST(CS_INT, 0x40)
00324
00325
00326 #define CS_CURSTAT_NONE TDS_STATIC_CAST(CS_INT, 0x0)
00327 #define CS_CURSTAT_DECLARED TDS_STATIC_CAST(CS_INT, 0x1)
00328 #define CS_CURSTAT_OPEN TDS_STATIC_CAST(CS_INT, 0x2)
00329 #define CS_CURSTAT_CLOSED TDS_STATIC_CAST(CS_INT, 0x4)
00330 #define CS_CURSTAT_RDONLY TDS_STATIC_CAST(CS_INT, 0x8)
00331 #define CS_CURSTAT_UPDATABLE TDS_STATIC_CAST(CS_INT, 0x10)
00332 #define CS_CURSTAT_ROWCOUNT TDS_STATIC_CAST(CS_INT, 0x20)
00333 #define CS_CURSTAT_DEALLOC TDS_STATIC_CAST(CS_INT, 0x40)
00334
00335 #define CS_CUR_STATUS TDS_STATIC_CAST(CS_INT, 9126)
00336 #define CS_CUR_ID TDS_STATIC_CAST(CS_INT, 9127)
00337 #define CS_CUR_NAME TDS_STATIC_CAST(CS_INT, 9128)
00338 #define CS_CUR_ROWCOUNT TDS_STATIC_CAST(CS_INT, 9129)
00339
00340
00341 #define CS_OPT_DATEFIRST 5001
00342 #define CS_OPT_TEXTSIZE 5002
00343 #define CS_OPT_STATS_TIME 5003
00344 #define CS_OPT_STATS_IO 5004
00345 #define CS_OPT_ROWCOUNT 5005
00346 #define CS_OPT_DATEFORMAT 5007
00347 #define CS_OPT_ISOLATION 5008
00348 #define CS_OPT_AUTHON 5009
00349 #define CS_OPT_SHOWPLAN 5013
00350 #define CS_OPT_NOEXEC 5014
00351 #define CS_OPT_ARITHIGNORE 5015
00352 #define CS_OPT_TRUNCIGNORE 5016
00353 #define CS_OPT_ARITHABORT 5017
00354 #define CS_OPT_PARSEONLY 5018
00355 #define CS_OPT_GETDATA 5020
00356 #define CS_OPT_NOCOUNT 5021
00357 #define CS_OPT_FORCEPLAN 5023
00358 #define CS_OPT_FORMATONLY 5024
00359 #define CS_OPT_CHAINXACTS 5025
00360 #define CS_OPT_CURCLOSEONXACT 5026
00361 #define CS_OPT_FIPSFLAG 5027
00362 #define CS_OPT_RESTREES 5028
00363 #define CS_OPT_IDENTITYON 5029
00364 #define CS_OPT_CURREAD 5030
00365 #define CS_OPT_CURWRITE 5031
00366 #define CS_OPT_IDENTITYOFF 5032
00367 #define CS_OPT_AUTHOFF 5033
00368 #define CS_OPT_ANSINULL 5034
00369 #define CS_OPT_QUOTED_IDENT 5035
00370 #define CS_OPT_ANSIPERM 5036
00371 #define CS_OPT_STR_RTRUNC 5037
00372
00373
00374 enum ct_command_options
00375 {
00376 CS_MORE = 16,
00377 CS_END = 32,
00378 CS_RECOMPILE = 188,
00379 CS_NO_RECOMPILE,
00380 CS_BULK_INIT,
00381 CS_BULK_CONT,
00382 CS_BULK_DATA,
00383 CS_COLUMN_DATA
00384 };
00385
00386
00387
00388
00389
00390
00391 enum
00392 {
00393 CS_FMT_UNUSED = 0,
00394 #define CS_FMT_UNUSED CS_FMT_UNUSED
00395 CS_FMT_NULLTERM = 1,
00396 #define CS_FMT_NULLTERM CS_FMT_NULLTERM
00397 CS_FMT_PADNULL = 2,
00398 #define CS_FMT_PADBLANK CS_FMT_PADBLANK
00399 CS_FMT_PADBLANK = 4,
00400 #define CS_FMT_PADNULL CS_FMT_PADNULL
00401 CS_FMT_JUSTIFY_RT = 8
00402 #define CS_FMT_JUSTIFY_RT CS_FMT_JUSTIFY_RT
00403 };
00404
00405
00406 #define CS_COMPLETION_CB 1
00407 #define CS_SERVERMSG_CB 2
00408 #define CS_CLIENTMSG_CB 3
00409 #define CS_NOTIF_CB 4
00410 #define CS_ENCRYPT_CB 5
00411 #define CS_CHALLENGE_CB 6
00412 #define CS_DS_LOOKUP_CB 7
00413 #define CS_SECSESSION_CB 8
00414 #define CS_SIGNAL_CB 100
00415 #define CS_MESSAGE_CB 9119
00416
00417
00418 #define CS_NULLTERM -9
00419 #define CS_WILDCARD -99
00420 #define CS_NO_LIMIT -9999
00421 #define CS_UNUSED -99999
00422
00423
00424 #define CS_GET 33
00425 #define CS_SET 34
00426 #define CS_CLEAR 35
00427 #define CS_INIT 36
00428 #define CS_STATUS 37
00429 #define CS_MSGLIMIT 38
00430 #define CS_SUPPORTED 40
00431
00432 #define CS_CMD_DONE 4046
00433 #define CS_CMD_SUCCEED 4047
00434 #define CS_CMD_FAIL 4048
00435
00436
00437 #define CS_LANG_CMD 148
00438 #define CS_RPC_CMD 149
00439 #define CS_SEND_DATA_CMD 151
00440 #define CS_SEND_BULK_CMD 153
00441
00442 #define CS_VERSION_100 112
00443 #define CS_VERSION_110 1100
00444 #define CS_VERSION_120 1100
00445 #define CS_VERSION_125 12500
00446 #define CS_VERSION_150 15000
00447
00448 #define BLK_VERSION_100 CS_VERSION_100
00449 #define BLK_VERSION_110 CS_VERSION_110
00450 #define BLK_VERSION_120 CS_VERSION_120
00451 #define BLK_VERSION_125 CS_VERSION_125
00452 #define BLK_VERSION_150 CS_VERSION_150
00453
00454 #define CS_FORCE_EXIT 300
00455 #define CS_FORCE_CLOSE 301
00456
00457 #define CS_SYNC_IO 8111
00458 #define CS_ASYNC_IO 8112
00459 #define CS_DEFER_IO 8113
00460
00461 #define CS_CANCEL_CURRENT 6000
00462 #define CS_CANCEL_ALL 6001
00463 #define CS_CANCEL_ATTN 6002
00464
00465 #define CS_ROW_COUNT 800
00466 #define CS_CMD_NUMBER 801
00467 #define CS_NUM_COMPUTES 802
00468 #define CS_NUMDATA 803
00469 #define CS_NUMORDERCOLS 805
00470 #define CS_MSGTYPE 806
00471 #define CS_BROWSE_INFO 807
00472 #define CS_TRANS_STATE 808
00473
00474 #define CS_TRAN_UNDEFINED 0
00475 #define CS_TRAN_IN_PROGRESS 1
00476 #define CS_TRAN_COMPLETED 2
00477 #define CS_TRAN_FAIL 3
00478 #define CS_TRAN_STMT_FAIL 4
00479
00480 #define CS_COMP_OP 5350
00481 #define CS_COMP_ID 5351
00482 #define CS_COMP_COLID 5352
00483 #define CS_COMP_BYLIST 5353
00484 #define CS_BYLIST_LEN 5354
00485
00486 #define CS_NO_COUNT -1
00487
00488 #define CS_OP_SUM 5370
00489 #define CS_OP_AVG 5371
00490 #define CS_OP_COUNT 5372
00491 #define CS_OP_MIN 5373
00492 #define CS_OP_MAX 5374
00493
00494 #define CS_CAP_REQUEST 1
00495 #define CS_CAP_RESPONSE 2
00496
00497 #define CS_PREPARE 717
00498 #define CS_EXECUTE 718
00499 #define CS_DESCRIBE_INPUT 720
00500 #define CS_DESCRIBE_OUTPUT 721
00501
00502 #define CS_DEALLOC 711
00503
00504 #define CS_LC_ALL 7
00505 #define CS_SYB_LANG 8
00506 #define CS_SYB_CHARSET 9
00507 #define CS_SYB_SORTORDER 10
00508 #define CS_SYB_COLLATE CS_SYB_SORTORDER
00509 #define CS_SYB_LANG_CHARSET 11
00510
00511 #define CS_BLK_IN 1
00512 #define CS_BLK_OUT 2
00513
00514 #define CS_BLK_BATCH 1
00515 #define CS_BLK_ALL 2
00516 #define CS_BLK_CANCEL 3
00517
00518
00519
00520 #define CS_BLK_ARRAY_MAXLEN 0x1000
00521 #define CS_DEF_PREC 18
00522
00523
00524 #define CS_SV_INFORM TDS_STATIC_CAST(CS_INT, 0)
00525 #define CS_SV_API_FAIL TDS_STATIC_CAST(CS_INT, 1)
00526 #define CS_SV_RETRY_FAIL TDS_STATIC_CAST(CS_INT, 2)
00527 #define CS_SV_RESOURCE_FAIL TDS_STATIC_CAST(CS_INT, 3)
00528 #define CS_SV_CONFIG_FAIL TDS_STATIC_CAST(CS_INT, 4)
00529 #define CS_SV_COMM_FAIL TDS_STATIC_CAST(CS_INT, 5)
00530 #define CS_SV_INTERNAL_FAIL TDS_STATIC_CAST(CS_INT, 6)
00531 #define CS_SV_FATAL TDS_STATIC_CAST(CS_INT, 7)
00532
00533
00534 #define CS_COMPUTE_RESULT 4045
00535 #define CS_CURSOR_RESULT 4041
00536 #define CS_PARAM_RESULT 4042
00537 #define CS_ROW_RESULT 4040
00538 #define CS_STATUS_RESULT 4043
00539 #define CS_COMPUTEFMT_RESULT 4050
00540 #define CS_ROWFMT_RESULT 4049
00541 #define CS_MSG_RESULT 4044
00542 #define CS_DESCRIBE_RESULT 4051
00543
00544
00545 #define CS_ILLEGAL_TYPE TDS_STATIC_CAST(CS_INT, -1)
00546 #define CS_CHAR_TYPE TDS_STATIC_CAST(CS_INT, 0)
00547 #define CS_BINARY_TYPE TDS_STATIC_CAST(CS_INT, 1)
00548 #define CS_LONGCHAR_TYPE TDS_STATIC_CAST(CS_INT, 2)
00549 #define CS_LONGBINARY_TYPE TDS_STATIC_CAST(CS_INT, 3)
00550 #define CS_TEXT_TYPE TDS_STATIC_CAST(CS_INT, 4)
00551 #define CS_IMAGE_TYPE TDS_STATIC_CAST(CS_INT, 5)
00552 #define CS_TINYINT_TYPE TDS_STATIC_CAST(CS_INT, 6)
00553 #define CS_SMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 7)
00554 #define CS_INT_TYPE TDS_STATIC_CAST(CS_INT, 8)
00555 #define CS_REAL_TYPE TDS_STATIC_CAST(CS_INT, 9)
00556 #define CS_FLOAT_TYPE TDS_STATIC_CAST(CS_INT, 10)
00557 #define CS_BIT_TYPE TDS_STATIC_CAST(CS_INT, 11)
00558 #define CS_DATETIME_TYPE TDS_STATIC_CAST(CS_INT, 12)
00559 #define CS_DATETIME4_TYPE TDS_STATIC_CAST(CS_INT, 13)
00560 #define CS_MONEY_TYPE TDS_STATIC_CAST(CS_INT, 14)
00561 #define CS_MONEY4_TYPE TDS_STATIC_CAST(CS_INT, 15)
00562 #define CS_NUMERIC_TYPE TDS_STATIC_CAST(CS_INT, 16)
00563 #define CS_DECIMAL_TYPE TDS_STATIC_CAST(CS_INT, 17)
00564 #define CS_VARCHAR_TYPE TDS_STATIC_CAST(CS_INT, 18)
00565 #define CS_VARBINARY_TYPE TDS_STATIC_CAST(CS_INT, 19)
00566 #define CS_LONG_TYPE TDS_STATIC_CAST(CS_INT, 20)
00567 #define CS_SENSITIVITY_TYPE TDS_STATIC_CAST(CS_INT, 21)
00568 #define CS_BOUNDARY_TYPE TDS_STATIC_CAST(CS_INT, 22)
00569 #define CS_VOID_TYPE TDS_STATIC_CAST(CS_INT, 23)
00570 #define CS_USHORT_TYPE TDS_STATIC_CAST(CS_INT, 24)
00571 #define CS_UNICHAR_TYPE TDS_STATIC_CAST(CS_INT, 25)
00572 #define CS_BLOB_TYPE TDS_STATIC_CAST(CS_INT, 26)
00573 #define CS_DATE_TYPE TDS_STATIC_CAST(CS_INT, 27)
00574 #define CS_TIME_TYPE TDS_STATIC_CAST(CS_INT, 28)
00575 #define CS_UNITEXT_TYPE TDS_STATIC_CAST(CS_INT, 29)
00576 #define CS_BIGINT_TYPE TDS_STATIC_CAST(CS_INT, 30)
00577 #define CS_USMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 31)
00578 #define CS_UINT_TYPE TDS_STATIC_CAST(CS_INT, 32)
00579 #define CS_UBIGINT_TYPE TDS_STATIC_CAST(CS_INT, 33)
00580 #define CS_XML_TYPE TDS_STATIC_CAST(CS_INT, 34)
00581 #define CS_UNIQUE_TYPE TDS_STATIC_CAST(CS_INT, 40)
00582
00583 #define CS_USER_TYPE TDS_STATIC_CAST(CS_INT, 100)
00584
00585 enum
00586 {
00587 CS_MONTH = 7340,
00588 #define CS_MONTH CS_MONTH
00589 CS_SHORTMONTH,
00590 #define CS_SHORTMONTH CS_SHORTMONTH
00591 CS_DAYNAME,
00592 #define CS_DAYNAME CS_DAYNAME
00593 CS_DATEORDER,
00594 #define CS_DATEORDER CS_DATEORDER
00595 CS_12HOUR,
00596 #define CS_12HOUR CS_12HOUR
00597 CS_DT_CONVFMT
00598 #define CS_DT_CONVFMT CS_DT_CONVFMT
00599 };
00600
00601
00602 enum
00603 {
00604 CS_DATES_SHORT = 0,
00605 #define CS_DATES_SHORT CS_DATES_SHORT
00606 CS_DATES_MDY1,
00607 #define CS_DATES_MDY1 CS_DATES_MDY1
00608 CS_DATES_YMD1,
00609 #define CS_DATES_YMD1 CS_DATES_YMD1
00610 CS_DATES_DMY1,
00611 #define CS_DATES_DMY1 CS_DATES_DMY1
00612 CS_DATES_DMY2,
00613 #define CS_DATES_DMY2 CS_DATES_DMY2
00614 CS_DATES_DMY3,
00615 #define CS_DATES_DMY3 CS_DATES_DMY3
00616 CS_DATES_DMY4,
00617 #define CS_DATES_DMY4 CS_DATES_DMY4
00618 CS_DATES_MDY2,
00619 #define CS_DATES_MDY2 CS_DATES_MDY2
00620 CS_DATES_HMS,
00621 #define CS_DATES_HMS CS_DATES_HMS
00622 CS_DATES_LONG,
00623 #define CS_DATES_LONG CS_DATES_LONG
00624 CS_DATES_MDY3,
00625 #define CS_DATES_MDY3 CS_DATES_MDY3
00626 CS_DATES_YMD2,
00627 #define CS_DATES_YMD2 CS_DATES_YMD2
00628 CS_DATES_YMD3,
00629 #define CS_DATES_YMD3 CS_DATES_YMD3
00630 CS_DATES_YDM1,
00631 #define CS_DATES_YDM1 CS_DATES_YDM1
00632 CS_DATES_MYD1,
00633 #define CS_DATES_MYD1 CS_DATES_MYD1
00634 CS_DATES_DYM1,
00635 #define CS_DATES_DYM1 CS_DATES_DYM1
00636 CS_DATES_MDY1_YYYY = 101,
00637 #define CS_DATES_MDY1_YYYY CS_DATES_MDY1_YYYY
00638 CS_DATES_YMD1_YYYY,
00639 #define CS_DATES_YMD1_YYYY CS_DATES_YMD1_YYYY
00640 CS_DATES_DMY1_YYYY,
00641 #define CS_DATES_DMY1_YYYY CS_DATES_DMY1_YYYY
00642 CS_DATES_DMY2_YYYY,
00643 #define CS_DATES_DMY2_YYYY CS_DATES_DMY2_YYYY
00644 CS_DATES_DMY3_YYYY,
00645 #define CS_DATES_DMY3_YYYY CS_DATES_DMY3_YYYY
00646 CS_DATES_DMY4_YYYY,
00647 #define CS_DATES_DMY4_YYYY CS_DATES_DMY4_YYYY
00648 CS_DATES_MDY2_YYYY,
00649 #define CS_DATES_MDY2_YYYY CS_DATES_MDY2_YYYY
00650 CS_DATES_MDY3_YYYY = 110,
00651 #define CS_DATES_MDY3_YYYY CS_DATES_MDY3_YYYY
00652 CS_DATES_YMD2_YYYY,
00653 #define CS_DATES_YMD2_YYYY CS_DATES_YMD2_YYYY
00654 CS_DATES_YMD3_YYYY
00655 #define CS_DATES_YMD3_YYYY CS_DATES_YMD3_YYYY
00656 };
00657
00658 typedef CS_RETCODE(*CS_CONV_FUNC) (CS_CONTEXT * context, CS_DATAFMT * srcfmt, CS_VOID * src, CS_DATAFMT * detsfmt, CS_VOID * dest,
00659 CS_INT * destlen);
00660
00661 typedef struct _cs_objname
00662 {
00663 CS_BOOL thinkexists;
00664 CS_INT object_type;
00665 CS_CHAR last_name[CS_MAX_NAME];
00666 CS_INT lnlen;
00667 CS_CHAR first_name[CS_MAX_NAME];
00668 CS_INT fnlen;
00669 CS_VOID *scope;
00670 CS_INT scopelen;
00671 CS_VOID *thread;
00672 CS_INT threadlen;
00673 } CS_OBJNAME;
00674
00675 typedef struct _cs_objdata
00676 {
00677 CS_BOOL actuallyexists;
00678 CS_CONNECTION *connection;
00679 CS_COMMAND *command;
00680 CS_VOID *buffer;
00681 CS_INT buflen;
00682 } CS_OBJDATA;
00683
00684
00685 enum
00686 {
00687 CS_OPT_MONDAY = 1,
00688 CS_OPT_TUESDAY,
00689 CS_OPT_WEDNESDAY,
00690 CS_OPT_THURSDAY,
00691 CS_OPT_FRIDAY,
00692 CS_OPT_SATURDAY,
00693 CS_OPT_SUNDAY
00694 };
00695 enum
00696 {
00697 CS_OPT_FMTMDY = 1,
00698 CS_OPT_FMTDMY,
00699 CS_OPT_FMTYMD,
00700 CS_OPT_FMTYDM,
00701 CS_OPT_FMTMYD,
00702 CS_OPT_FMTDYM
00703 };
00704 enum
00705 {
00706 CS_OPT_LEVEL0 = 0,
00707 CS_OPT_LEVEL1,
00708 CS_OPT_LEVEL2,
00709 CS_OPT_LEVEL3
00710 };
00711
00712 #define CS_FALSE 0
00713 #define CS_TRUE 1
00714
00715 #define SRV_PROC CS_VOID
00716
00717
00718 #define CS_CLIENTMSG_TYPE 4700
00719 #define CS_SERVERMSG_TYPE 4701
00720 #define CS_ALLMSG_TYPE 4702
00721
00722 CS_RETCODE cs_convert(CS_CONTEXT * ctx, CS_DATAFMT * srcfmt, CS_VOID * srcdata, CS_DATAFMT * destfmt, CS_VOID * destdata,
00723 CS_INT * resultlen);
00724 CS_RETCODE cs_ctx_alloc(CS_INT version, CS_CONTEXT ** ctx);
00725 CS_RETCODE cs_ctx_global(CS_INT version, CS_CONTEXT ** ctx);
00726 CS_RETCODE cs_ctx_drop(CS_CONTEXT * ctx);
00727 CS_RETCODE cs_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
00728 CS_RETCODE cs_strbuild(CS_CONTEXT * ctx, CS_CHAR * buffer, CS_INT buflen, CS_INT * resultlen, CS_CHAR * text, CS_INT textlen,
00729 CS_CHAR * formats, CS_INT formatlen, ...);
00730 CS_RETCODE cs_dt_crack(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
00731 CS_RETCODE cs_loc_alloc(CS_CONTEXT * ctx, CS_LOCALE ** locptr);
00732 CS_RETCODE cs_loc_drop(CS_CONTEXT * ctx, CS_LOCALE * locale);
00733 CS_RETCODE cs_locale(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_VOID * buffer, CS_INT buflen,
00734 CS_INT * outlen);
00735 CS_RETCODE cs_dt_info(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_INT item, CS_VOID * buffer,
00736 CS_INT buflen, CS_INT * outlen);
00737
00738 CS_RETCODE cs_calc(CS_CONTEXT * ctx, CS_INT op, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_VOID * dest);
00739 CS_RETCODE cs_cmp(CS_CONTEXT * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_INT * result);
00740 CS_RETCODE cs_conv_mult(CS_CONTEXT * ctx, CS_LOCALE * srcloc, CS_LOCALE * destloc, CS_INT * conv_multiplier);
00741 CS_RETCODE cs_diag(CS_CONTEXT * ctx, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
00742 CS_RETCODE cs_manage_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_CHAR * srcname, CS_INT srcnamelen, CS_INT desttype,
00743 CS_CHAR * destname, CS_INT destnamelen, CS_INT * conv_multiplier, CS_CONV_FUNC * func);
00744 CS_RETCODE cs_objects(CS_CONTEXT * ctx, CS_INT action, CS_OBJNAME * objname, CS_OBJDATA * objdata);
00745 CS_RETCODE cs_set_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_INT desttype, CS_CONV_FUNC * func);
00746 CS_RETCODE cs_setnull(CS_CONTEXT * ctx, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT buflen);
00747 CS_RETCODE cs_strcmp(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_INT type, CS_CHAR * str1, CS_INT len1, CS_CHAR * str2, CS_INT len2,
00748 CS_INT * result);
00749 CS_RETCODE cs_time(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen, CS_DATEREC * daterec);
00750 CS_RETCODE cs_will_convert(CS_CONTEXT * ctx, CS_INT srctype, CS_INT desttype, CS_BOOL * result);
00751
00752 #ifdef __cplusplus
00753 #if 0
00754 {
00755 #endif
00756 }
00757 #endif
00758
00759 #endif