/usr/include/cspublic.h is in freetds-dev 1.00.82-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 | /* FreeTDS - Library of routines accessing Sybase and Microsoft databases
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef _cspublic_h_
#define _cspublic_h_
#include <cstypes.h>
#undef TDS_STATIC_CAST
#ifdef __cplusplus
#define TDS_STATIC_CAST(type, a) static_cast<type>(a)
extern "C"
{
#if 0
}
#endif
#else
#define TDS_STATIC_CAST(type, a) ((type)(a))
#endif
#define CS_PUBLIC
#define CS_STATIC static
#define CS_SUCCEED 1
#define CS_FAIL 0
#define CS_MEM_ERROR -1
#define CS_PENDING -2
#define CS_QUIET -3
#define CS_BUSY -4
#define CS_INTERRUPT -5
#define CS_BLK_HAS_TEXT -6
#define CS_CONTINUE -7
#define CS_FATAL -8
#define CS_RET_HAFAILOVER -9
#define CS_UNSUPPORTED -10
#define CS_CANCELED -202
#define CS_ROW_FAIL -203
#define CS_END_DATA -204
#define CS_END_RESULTS -205
#define CS_END_ITEM -206
#define CS_NOMSG -207
#define CS_TIMED_OUT -208
#define CS_SIZEOF(x) sizeof(x)
#define CS_LAYER(x) (((x) >> 24) & 0xFF)
#define CS_ORIGIN(x) (((x) >> 16) & 0xFF)
#define CS_SEVERITY(x) (((x) >> 8) & 0xFF)
#define CS_NUMBER(x) ((x) & 0xFF)
/* forward declarations */
typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (CS_CONTEXT *, CS_CLIENTMSG *);
typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_CLIENTMSG *);
typedef CS_RETCODE(*CS_SERVERMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_SERVERMSG *);
#define CS_IODATA TDS_STATIC_CAST(CS_INT, 1600)
#define CS_SRC_VALUE -2562
/* status bits for CS_SERVERMSG */
#define CS_HASEED 0x01
typedef struct _cs_blkdesc CS_BLKDESC;
/* CS_CAP_REQUEST values */
#define CS_REQ_LANG 1
#define CS_REQ_RPC 2
#define CS_REQ_NOTIF 3
#define CS_REQ_MSTMT 4
#define CS_REQ_BCP 5
#define CS_REQ_CURSOR 6
#define CS_REQ_DYN 7
#define CS_REQ_MSG 8
#define CS_REQ_PARAM 9
#define CS_DATA_INT1 10
#define CS_DATA_INT2 11
#define CS_DATA_INT4 12
#define CS_DATA_BIT 13
#define CS_DATA_CHAR 14
#define CS_DATA_VCHAR 15
#define CS_DATA_BIN 16
#define CS_DATA_VBIN 17
#define CS_DATA_MNY8 18
#define CS_DATA_MNY4 19
#define CS_DATA_DATE8 20
#define CS_DATA_DATE4 21
#define CS_DATA_FLT4 22
#define CS_DATA_FLT8 23
#define CS_DATA_NUM 24
#define CS_DATA_TEXT 25
#define CS_DATA_IMAGE 26
#define CS_DATA_DEC 27
#define CS_DATA_LCHAR 28
#define CS_DATA_LBIN 29
#define CS_DATA_INTN 30
#define CS_DATA_DATETIMEN 31
#define CS_DATA_MONEYN 32
#define CS_CSR_PREV 33
#define CS_CSR_FIRST 34
#define CS_CSR_LAST 35
#define CS_CSR_ABS 36
#define CS_CSR_REL 37
#define CS_CSR_MULTI 38
#define CS_CON_OOB 39
#define CS_CON_INBAND 40
#define CS_CON_LOGICAL 41
#define CS_PROTO_TEXT 42
#define CS_PROTO_BULK 43
#define CS_REQ_URGNOTIF 44
#define CS_DATA_SENSITIVITY 45
#define CS_DATA_BOUNDARY 46
#define CS_PROTO_DYNAMIC 47
#define CS_PROTO_DYNPROC 48
#define CS_DATA_FLTN 49
#define CS_DATA_BITN 50
#define CS_OPTION_GET 51
#define CS_DATA_INT8 52
#define CS_DATA_VOID 53
/* CS_CAP_RESPONSE values */
#define CS_RES_NOMSG 1
#define CS_RES_NOEED 2
#define CS_RES_NOPARAM 3
#define CS_DATA_NOINT1 4
#define CS_DATA_NOINT2 5
#define CS_DATA_NOINT4 6
#define CS_DATA_NOBIT 7
#define CS_DATA_NOCHAR 8
#define CS_DATA_NOVCHAR 9
#define CS_DATA_NOBIN 10
#define CS_DATA_NOVBIN 11
#define CS_DATA_NOMNY8 12
#define CS_DATA_NOMNY4 13
#define CS_DATA_NODATE8 14
#define CS_DATA_NODATE4 15
#define CS_DATA_NOFLT4 16
#define CS_DATA_NOFLT8 17
#define CS_DATA_NONUM 18
#define CS_DATA_NOTEXT 19
#define CS_DATA_NOIMAGE 20
#define CS_DATA_NODEC 21
#define CS_DATA_NOLCHAR 22
#define CS_DATA_NOLBIN 23
#define CS_DATA_NOINTN 24
#define CS_DATA_NODATETIMEN 25
#define CS_DATA_NOMONEYN 26
#define CS_CON_NOOOB 27
#define CS_CON_NOINBAND 28
#define CS_PROTO_NOTEXT 29
#define CS_PROTO_NOBULK 30
#define CS_DATA_NOSENSITIVITY 31
#define CS_DATA_NOBOUNDARY 32
#define CS_RES_NOTDSDEBUG 33
#define CS_RES_NOSTRIPBLANKS 34
#define CS_DATA_NOINT8 35
/* Properties */
enum
{
/*
* These defines looks weird but programs can test support for defines,
* compiler can check enum and there are no define side effecs
*/
CS_USERNAME = 9100,
#define CS_USERNAME CS_USERNAME
CS_PASSWORD = 9101,
#define CS_PASSWORD CS_PASSWORD
CS_APPNAME = 9102,
#define CS_APPNAME CS_APPNAME
CS_HOSTNAME = 9103,
#define CS_HOSTNAME CS_HOSTNAME
CS_LOGIN_STATUS = 9104,
#define CS_LOGIN_STATUS CS_LOGIN_STATUS
CS_TDS_VERSION = 9105,
#define CS_TDS_VERSION CS_TDS_VERSION
CS_CHARSETCNV = 9106,
#define CS_CHARSETCNV CS_CHARSETCNV
CS_PACKETSIZE = 9107,
#define CS_PACKETSIZE CS_PACKETSIZE
CS_USERDATA = 9108,
#define CS_USERDATA CS_USERDATA
CS_NETIO = 9110,
#define CS_NETIO CS_NETIO
CS_TEXTLIMIT = 9112,
#define CS_TEXTLIMIT CS_TEXTLIMIT
CS_HIDDEN_KEYS = 9113,
#define CS_HIDDEN_KEYS CS_HIDDEN_KEYS
CS_VERSION = 9114,
#define CS_VERSION CS_VERSION
CS_IFILE = 9115,
#define CS_IFILE CS_IFILE
CS_LOGIN_TIMEOUT = 9116,
#define CS_LOGIN_TIMEOUT CS_LOGIN_TIMEOUT
CS_TIMEOUT = 9117,
#define CS_TIMEOUT CS_TIMEOUT
CS_MAX_CONNECT = 9118,
#define CS_MAX_CONNECT CS_MAX_CONNECT
CS_EXPOSE_FMTS = 9120,
#define CS_EXPOSE_FMTS CS_EXPOSE_FMTS
CS_EXTRA_INF = 9121,
#define CS_EXTRA_INF CS_EXTRA_INF
CS_ANSI_BINDS = 9123,
#define CS_ANSI_BINDS CS_ANSI_BINDS
CS_BULK_LOGIN = 9124,
#define CS_BULK_LOGIN CS_BULK_LOGIN
CS_LOC_PROP = 9125,
#define CS_LOC_PROP CS_LOC_PROP
CS_PARENT_HANDLE = 9130,
#define CS_PARENT_HANDLE CS_PARENT_HANDLE
CS_EED_CMD = 9131,
#define CS_EED_CMD CS_EED_CMD
CS_DIAG_TIMEOUT = 9132,
#define CS_DIAG_TIMEOUT CS_DIAG_TIMEOUT
CS_DISABLE_POLL = 9133,
#define CS_DISABLE_POLL CS_DISABLE_POLL
CS_SEC_ENCRYPTION = 9135,
#define CS_SEC_ENCRYPTION CS_SEC_ENCRYPTION
CS_SEC_CHALLENGE = 9136,
#define CS_SEC_CHALLENGE CS_SEC_CHALLENGE
CS_SEC_NEGOTIATE = 9137,
#define CS_SEC_NEGOTIATE CS_SEC_NEGOTIATE
CS_CON_STATUS = 9143,
#define CS_CON_STATUS CS_CON_STATUS
CS_VER_STRING = 9144,
#define CS_VER_STRING CS_VER_STRING
CS_SERVERNAME = 9146,
#define CS_SERVERNAME CS_SERVERNAME
CS_SEC_APPDEFINED = 9149,
#define CS_SEC_APPDEFINED CS_SEC_APPDEFINED
CS_STICKY_BINDS = 9151,
#define CS_STICKY_BINDS CS_STICKY_BINDS
CS_SERVERADDR = 9206,
#define CS_SERVERADDR CS_SERVERADDR
CS_PORT = 9300
#define CS_PORT CS_PORT
};
/* Arbitrary precision math operators */
enum
{
CS_ADD = 1,
CS_SUB,
CS_MULT,
CS_DIV
};
enum
{
CS_TDS_40 = 7360,
CS_TDS_42,
CS_TDS_46,
CS_TDS_495,
CS_TDS_50,
CS_TDS_70,
CS_TDS_71,
CS_TDS_72,
CS_TDS_73,
CS_TDS_74,
};
/* bit mask values used by CS_DATAFMT.status */
#define CS_HIDDEN (1 << 0)
#define CS_KEY (1 << 1)
#define CS_VERSION_KEY (1 << 2)
#define CS_NODATA (1 << 3)
#define CS_UPDATABLE (1 << 4)
#define CS_CANBENULL (1 << 5)
#define CS_DESCIN (1 << 6)
#define CS_DESCOUT (1 << 7)
#define CS_INPUTVALUE (1 << 8)
#define CS_UPDATECOL (1 << 9)
#define CS_RETURN (1 << 10)
#define CS_TIMESTAMP (1 << 13)
#define CS_NODEFAULT (1 << 14)
#define CS_IDENTITY (1 << 15)
/*
* DBD::Sybase compares indicator to CS_NULLDATA so this is -1
* (the documentation states -1)
*/
#define CS_GOODDATA 0
#define CS_NULLDATA (-1)
/* CS_CON_STATUS read-only property bit mask values */
#define CS_CONSTAT_CONNECTED 0x01
#define CS_CONSTAT_DEAD 0x02
/*
* Code added for CURSOR support
* types accepted by ct_cursor
*/
#define CS_CURSOR_DECLARE 700
#define CS_CURSOR_OPEN 701
#define CS_CURSOR_ROWS 703
#define CS_CURSOR_UPDATE 704
#define CS_CURSOR_DELETE 705
#define CS_CURSOR_CLOSE 706
#define CS_CURSOR_DEALLOC 707
#define CS_CURSOR_OPTION 725
#define CS_FOR_UPDATE TDS_STATIC_CAST(CS_INT, 0x1)
#define CS_READ_ONLY TDS_STATIC_CAST(CS_INT, 0x2)
#define CS_RESTORE_OPEN TDS_STATIC_CAST(CS_INT, 0x8)
#define CS_IMPLICIT_CURSOR TDS_STATIC_CAST(CS_INT, 0x40)
#define CS_CURSTAT_NONE TDS_STATIC_CAST(CS_INT, 0x0)
#define CS_CURSTAT_DECLARED TDS_STATIC_CAST(CS_INT, 0x1)
#define CS_CURSTAT_OPEN TDS_STATIC_CAST(CS_INT, 0x2)
#define CS_CURSTAT_CLOSED TDS_STATIC_CAST(CS_INT, 0x4)
#define CS_CURSTAT_RDONLY TDS_STATIC_CAST(CS_INT, 0x8)
#define CS_CURSTAT_UPDATABLE TDS_STATIC_CAST(CS_INT, 0x10)
#define CS_CURSTAT_ROWCOUNT TDS_STATIC_CAST(CS_INT, 0x20)
#define CS_CURSTAT_DEALLOC TDS_STATIC_CAST(CS_INT, 0x40)
#define CS_CUR_STATUS TDS_STATIC_CAST(CS_INT, 9126)
#define CS_CUR_ID TDS_STATIC_CAST(CS_INT, 9127)
#define CS_CUR_NAME TDS_STATIC_CAST(CS_INT, 9128)
#define CS_CUR_ROWCOUNT TDS_STATIC_CAST(CS_INT, 9129)
/* options accepted by ct_options() */
#define CS_OPT_DATEFIRST 5001
#define CS_OPT_TEXTSIZE 5002
#define CS_OPT_STATS_TIME 5003
#define CS_OPT_STATS_IO 5004
#define CS_OPT_ROWCOUNT 5005
#define CS_OPT_DATEFORMAT 5007
#define CS_OPT_ISOLATION 5008
#define CS_OPT_AUTHON 5009
#define CS_OPT_SHOWPLAN 5013
#define CS_OPT_NOEXEC 5014
#define CS_OPT_ARITHIGNORE 5015
#define CS_OPT_TRUNCIGNORE 5016
#define CS_OPT_ARITHABORT 5017
#define CS_OPT_PARSEONLY 5018
#define CS_OPT_GETDATA 5020
#define CS_OPT_NOCOUNT 5021
#define CS_OPT_FORCEPLAN 5023
#define CS_OPT_FORMATONLY 5024
#define CS_OPT_CHAINXACTS 5025
#define CS_OPT_CURCLOSEONXACT 5026
#define CS_OPT_FIPSFLAG 5027
#define CS_OPT_RESTREES 5028
#define CS_OPT_IDENTITYON 5029
#define CS_OPT_CURREAD 5030
#define CS_OPT_CURWRITE 5031
#define CS_OPT_IDENTITYOFF 5032
#define CS_OPT_AUTHOFF 5033
#define CS_OPT_ANSINULL 5034
#define CS_OPT_QUOTED_IDENT 5035
#define CS_OPT_ANSIPERM 5036
#define CS_OPT_STR_RTRUNC 5037
/* options accepted by ct_command() */
enum ct_command_options
{
CS_MORE = 16,
CS_END = 32,
CS_RECOMPILE = 188,
CS_NO_RECOMPILE,
CS_BULK_INIT,
CS_BULK_CONT,
CS_BULK_DATA,
CS_COLUMN_DATA
};
/*
* bind formats, should be mapped to TDS types
* can be a combination of bit
*/
enum
{
CS_FMT_UNUSED = 0,
#define CS_FMT_UNUSED CS_FMT_UNUSED
CS_FMT_NULLTERM = 1,
#define CS_FMT_NULLTERM CS_FMT_NULLTERM
CS_FMT_PADNULL = 2,
#define CS_FMT_PADBLANK CS_FMT_PADBLANK
CS_FMT_PADBLANK = 4,
#define CS_FMT_PADNULL CS_FMT_PADNULL
CS_FMT_JUSTIFY_RT = 8
#define CS_FMT_JUSTIFY_RT CS_FMT_JUSTIFY_RT
};
/* callbacks */
#define CS_COMPLETION_CB 1
#define CS_SERVERMSG_CB 2
#define CS_CLIENTMSG_CB 3
#define CS_NOTIF_CB 4
#define CS_ENCRYPT_CB 5
#define CS_CHALLENGE_CB 6
#define CS_DS_LOOKUP_CB 7
#define CS_SECSESSION_CB 8
#define CS_SIGNAL_CB 100
#define CS_MESSAGE_CB 9119
/* string types */
#define CS_NULLTERM -9
#define CS_WILDCARD -99
#define CS_NO_LIMIT -9999
#define CS_UNUSED -99999
/* other */
#define CS_GET 33
#define CS_SET 34
#define CS_CLEAR 35
#define CS_INIT 36
#define CS_STATUS 37
#define CS_MSGLIMIT 38
#define CS_SUPPORTED 40
#define CS_CMD_DONE 4046
#define CS_CMD_SUCCEED 4047
#define CS_CMD_FAIL 4048
/* commands */
#define CS_LANG_CMD 148
#define CS_RPC_CMD 149
#define CS_SEND_DATA_CMD 151
#define CS_SEND_BULK_CMD 153
#define CS_VERSION_100 112
#define CS_VERSION_110 1100
#define CS_VERSION_120 1100
#define CS_VERSION_125 12500
#define CS_VERSION_150 15000
#define BLK_VERSION_100 CS_VERSION_100
#define BLK_VERSION_110 CS_VERSION_110
#define BLK_VERSION_120 CS_VERSION_120
#define BLK_VERSION_125 CS_VERSION_125
#define BLK_VERSION_150 CS_VERSION_150
#define CS_FORCE_EXIT 300
#define CS_FORCE_CLOSE 301
#define CS_SYNC_IO 8111
#define CS_ASYNC_IO 8112
#define CS_DEFER_IO 8113
#define CS_CANCEL_CURRENT 6000
#define CS_CANCEL_ALL 6001
#define CS_CANCEL_ATTN 6002
#define CS_ROW_COUNT 800
#define CS_CMD_NUMBER 801
#define CS_NUM_COMPUTES 802
#define CS_NUMDATA 803
#define CS_NUMORDERCOLS 805
#define CS_MSGTYPE 806
#define CS_BROWSE_INFO 807
#define CS_TRANS_STATE 808
#define CS_TRAN_UNDEFINED 0
#define CS_TRAN_IN_PROGRESS 1
#define CS_TRAN_COMPLETED 2
#define CS_TRAN_FAIL 3
#define CS_TRAN_STMT_FAIL 4
#define CS_COMP_OP 5350
#define CS_COMP_ID 5351
#define CS_COMP_COLID 5352
#define CS_COMP_BYLIST 5353
#define CS_BYLIST_LEN 5354
#define CS_NO_COUNT -1
#define CS_OP_SUM 5370
#define CS_OP_AVG 5371
#define CS_OP_COUNT 5372
#define CS_OP_MIN 5373
#define CS_OP_MAX 5374
#define CS_CAP_REQUEST 1
#define CS_CAP_RESPONSE 2
#define CS_PREPARE 717
#define CS_EXECUTE 718
#define CS_DESCRIBE_INPUT 720
#define CS_DESCRIBE_OUTPUT 721
#define CS_DEALLOC 711
#define CS_LC_ALL 7
#define CS_SYB_LANG 8
#define CS_SYB_CHARSET 9
#define CS_SYB_SORTORDER 10
#define CS_SYB_COLLATE CS_SYB_SORTORDER
#define CS_SYB_LANG_CHARSET 11
#define CS_BLK_IN 1
#define CS_BLK_OUT 2
#define CS_BLK_BATCH 1
#define CS_BLK_ALL 2
#define CS_BLK_CANCEL 3
/* to do support these */
#define CS_BLK_ARRAY_MAXLEN 0x1000
#define CS_DEF_PREC 18
/* Error Severities */
#define CS_SV_INFORM TDS_STATIC_CAST(CS_INT, 0)
#define CS_SV_API_FAIL TDS_STATIC_CAST(CS_INT, 1)
#define CS_SV_RETRY_FAIL TDS_STATIC_CAST(CS_INT, 2)
#define CS_SV_RESOURCE_FAIL TDS_STATIC_CAST(CS_INT, 3)
#define CS_SV_CONFIG_FAIL TDS_STATIC_CAST(CS_INT, 4)
#define CS_SV_COMM_FAIL TDS_STATIC_CAST(CS_INT, 5)
#define CS_SV_INTERNAL_FAIL TDS_STATIC_CAST(CS_INT, 6)
#define CS_SV_FATAL TDS_STATIC_CAST(CS_INT, 7)
/* result_types */
#define CS_COMPUTE_RESULT 4045
#define CS_CURSOR_RESULT 4041
#define CS_PARAM_RESULT 4042
#define CS_ROW_RESULT 4040
#define CS_STATUS_RESULT 4043
#define CS_COMPUTEFMT_RESULT 4050
#define CS_ROWFMT_RESULT 4049
#define CS_MSG_RESULT 4044
#define CS_DESCRIBE_RESULT 4051
/* bind types */
#define CS_ILLEGAL_TYPE TDS_STATIC_CAST(CS_INT, -1)
#define CS_CHAR_TYPE TDS_STATIC_CAST(CS_INT, 0)
#define CS_BINARY_TYPE TDS_STATIC_CAST(CS_INT, 1)
#define CS_LONGCHAR_TYPE TDS_STATIC_CAST(CS_INT, 2)
#define CS_LONGBINARY_TYPE TDS_STATIC_CAST(CS_INT, 3)
#define CS_TEXT_TYPE TDS_STATIC_CAST(CS_INT, 4)
#define CS_IMAGE_TYPE TDS_STATIC_CAST(CS_INT, 5)
#define CS_TINYINT_TYPE TDS_STATIC_CAST(CS_INT, 6)
#define CS_SMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 7)
#define CS_INT_TYPE TDS_STATIC_CAST(CS_INT, 8)
#define CS_REAL_TYPE TDS_STATIC_CAST(CS_INT, 9)
#define CS_FLOAT_TYPE TDS_STATIC_CAST(CS_INT, 10)
#define CS_BIT_TYPE TDS_STATIC_CAST(CS_INT, 11)
#define CS_DATETIME_TYPE TDS_STATIC_CAST(CS_INT, 12)
#define CS_DATETIME4_TYPE TDS_STATIC_CAST(CS_INT, 13)
#define CS_MONEY_TYPE TDS_STATIC_CAST(CS_INT, 14)
#define CS_MONEY4_TYPE TDS_STATIC_CAST(CS_INT, 15)
#define CS_NUMERIC_TYPE TDS_STATIC_CAST(CS_INT, 16)
#define CS_DECIMAL_TYPE TDS_STATIC_CAST(CS_INT, 17)
#define CS_VARCHAR_TYPE TDS_STATIC_CAST(CS_INT, 18)
#define CS_VARBINARY_TYPE TDS_STATIC_CAST(CS_INT, 19)
#define CS_LONG_TYPE TDS_STATIC_CAST(CS_INT, 20)
#define CS_SENSITIVITY_TYPE TDS_STATIC_CAST(CS_INT, 21)
#define CS_BOUNDARY_TYPE TDS_STATIC_CAST(CS_INT, 22)
#define CS_VOID_TYPE TDS_STATIC_CAST(CS_INT, 23)
#define CS_USHORT_TYPE TDS_STATIC_CAST(CS_INT, 24)
#define CS_UNICHAR_TYPE TDS_STATIC_CAST(CS_INT, 25)
#define CS_BLOB_TYPE TDS_STATIC_CAST(CS_INT, 26)
#define CS_DATE_TYPE TDS_STATIC_CAST(CS_INT, 27)
#define CS_TIME_TYPE TDS_STATIC_CAST(CS_INT, 28)
#define CS_UNITEXT_TYPE TDS_STATIC_CAST(CS_INT, 29)
#define CS_BIGINT_TYPE TDS_STATIC_CAST(CS_INT, 30)
#define CS_USMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 31)
#define CS_UINT_TYPE TDS_STATIC_CAST(CS_INT, 32)
#define CS_UBIGINT_TYPE TDS_STATIC_CAST(CS_INT, 33)
#define CS_XML_TYPE TDS_STATIC_CAST(CS_INT, 34)
#define CS_BIGDATETIME_TYPE TDS_STATIC_CAST(CS_INT, 35)
#define CS_BIGTIME_TYPE TDS_STATIC_CAST(CS_INT, 36)
#define CS_UNIQUE_TYPE TDS_STATIC_CAST(CS_INT, 40)
#define CS_USER_TYPE TDS_STATIC_CAST(CS_INT, 100)
/* cs_dt_info type values */
enum
{
CS_MONTH = 7340,
#define CS_MONTH CS_MONTH
CS_SHORTMONTH,
#define CS_SHORTMONTH CS_SHORTMONTH
CS_DAYNAME,
#define CS_DAYNAME CS_DAYNAME
CS_DATEORDER,
#define CS_DATEORDER CS_DATEORDER
CS_12HOUR,
#define CS_12HOUR CS_12HOUR
CS_DT_CONVFMT
#define CS_DT_CONVFMT CS_DT_CONVFMT
};
/* DT_CONVFMT types */
enum
{
CS_DATES_SHORT = 0,
#define CS_DATES_SHORT CS_DATES_SHORT
CS_DATES_MDY1,
#define CS_DATES_MDY1 CS_DATES_MDY1
CS_DATES_YMD1,
#define CS_DATES_YMD1 CS_DATES_YMD1
CS_DATES_DMY1,
#define CS_DATES_DMY1 CS_DATES_DMY1
CS_DATES_DMY2,
#define CS_DATES_DMY2 CS_DATES_DMY2
CS_DATES_DMY3,
#define CS_DATES_DMY3 CS_DATES_DMY3
CS_DATES_DMY4,
#define CS_DATES_DMY4 CS_DATES_DMY4
CS_DATES_MDY2,
#define CS_DATES_MDY2 CS_DATES_MDY2
CS_DATES_HMS,
#define CS_DATES_HMS CS_DATES_HMS
CS_DATES_LONG,
#define CS_DATES_LONG CS_DATES_LONG
CS_DATES_MDY3,
#define CS_DATES_MDY3 CS_DATES_MDY3
CS_DATES_YMD2,
#define CS_DATES_YMD2 CS_DATES_YMD2
CS_DATES_YMD3,
#define CS_DATES_YMD3 CS_DATES_YMD3
CS_DATES_YDM1,
#define CS_DATES_YDM1 CS_DATES_YDM1
CS_DATES_MYD1,
#define CS_DATES_MYD1 CS_DATES_MYD1
CS_DATES_DYM1,
#define CS_DATES_DYM1 CS_DATES_DYM1
CS_DATES_MDY1_YYYY = 101,
#define CS_DATES_MDY1_YYYY CS_DATES_MDY1_YYYY
CS_DATES_YMD1_YYYY,
#define CS_DATES_YMD1_YYYY CS_DATES_YMD1_YYYY
CS_DATES_DMY1_YYYY,
#define CS_DATES_DMY1_YYYY CS_DATES_DMY1_YYYY
CS_DATES_DMY2_YYYY,
#define CS_DATES_DMY2_YYYY CS_DATES_DMY2_YYYY
CS_DATES_DMY3_YYYY,
#define CS_DATES_DMY3_YYYY CS_DATES_DMY3_YYYY
CS_DATES_DMY4_YYYY,
#define CS_DATES_DMY4_YYYY CS_DATES_DMY4_YYYY
CS_DATES_MDY2_YYYY,
#define CS_DATES_MDY2_YYYY CS_DATES_MDY2_YYYY
CS_DATES_MDY3_YYYY = 110,
#define CS_DATES_MDY3_YYYY CS_DATES_MDY3_YYYY
CS_DATES_YMD2_YYYY,
#define CS_DATES_YMD2_YYYY CS_DATES_YMD2_YYYY
CS_DATES_YMD3_YYYY
#define CS_DATES_YMD3_YYYY CS_DATES_YMD3_YYYY
};
typedef CS_RETCODE(*CS_CONV_FUNC) (CS_CONTEXT * context, CS_DATAFMT * srcfmt, CS_VOID * src, CS_DATAFMT * detsfmt, CS_VOID * dest,
CS_INT * destlen);
typedef struct _cs_objname
{
CS_BOOL thinkexists;
CS_INT object_type;
CS_CHAR last_name[CS_MAX_NAME];
CS_INT lnlen;
CS_CHAR first_name[CS_MAX_NAME];
CS_INT fnlen;
CS_VOID *scope;
CS_INT scopelen;
CS_VOID *thread;
CS_INT threadlen;
} CS_OBJNAME;
typedef struct _cs_objdata
{
CS_BOOL actuallyexists;
CS_CONNECTION *connection;
CS_COMMAND *command;
CS_VOID *buffer;
CS_INT buflen;
} CS_OBJDATA;
/* Eventually, these should be in terms of TDS values */
enum
{
CS_OPT_MONDAY = 1,
CS_OPT_TUESDAY,
CS_OPT_WEDNESDAY,
CS_OPT_THURSDAY,
CS_OPT_FRIDAY,
CS_OPT_SATURDAY,
CS_OPT_SUNDAY
};
enum
{
CS_OPT_FMTMDY = 1,
CS_OPT_FMTDMY,
CS_OPT_FMTYMD,
CS_OPT_FMTYDM,
CS_OPT_FMTMYD,
CS_OPT_FMTDYM
};
enum
{
CS_OPT_LEVEL0 = 0,
CS_OPT_LEVEL1,
CS_OPT_LEVEL2,
CS_OPT_LEVEL3
};
#define CS_FALSE 0
#define CS_TRUE 1
#define SRV_PROC CS_VOID
/* constants required for ct_diag (not jet implemented) */
#define CS_CLIENTMSG_TYPE 4700
#define CS_SERVERMSG_TYPE 4701
#define CS_ALLMSG_TYPE 4702
CS_RETCODE cs_convert(CS_CONTEXT * ctx, CS_DATAFMT * srcfmt, CS_VOID * srcdata, CS_DATAFMT * destfmt, CS_VOID * destdata,
CS_INT * resultlen);
CS_RETCODE cs_ctx_alloc(CS_INT version, CS_CONTEXT ** ctx);
CS_RETCODE cs_ctx_global(CS_INT version, CS_CONTEXT ** ctx);
CS_RETCODE cs_ctx_drop(CS_CONTEXT * ctx);
CS_RETCODE cs_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
CS_RETCODE cs_strbuild(CS_CONTEXT * ctx, CS_CHAR * buffer, CS_INT buflen, CS_INT * resultlen, CS_CHAR * text, CS_INT textlen,
CS_CHAR * formats, CS_INT formatlen, ...);
#undef cs_dt_crack
CS_RETCODE cs_dt_crack(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
CS_RETCODE cs_dt_crack_v2(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
#define cs_dt_crack cs_dt_crack_v2
CS_RETCODE cs_loc_alloc(CS_CONTEXT * ctx, CS_LOCALE ** locptr);
CS_RETCODE cs_loc_drop(CS_CONTEXT * ctx, CS_LOCALE * locale);
CS_RETCODE cs_locale(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_VOID * buffer, CS_INT buflen,
CS_INT * outlen);
CS_RETCODE cs_dt_info(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_INT item, CS_VOID * buffer,
CS_INT buflen, CS_INT * outlen);
CS_RETCODE cs_calc(CS_CONTEXT * ctx, CS_INT op, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_VOID * dest);
CS_RETCODE cs_cmp(CS_CONTEXT * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_INT * result);
CS_RETCODE cs_conv_mult(CS_CONTEXT * ctx, CS_LOCALE * srcloc, CS_LOCALE * destloc, CS_INT * conv_multiplier);
CS_RETCODE cs_diag(CS_CONTEXT * ctx, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
CS_RETCODE cs_manage_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_CHAR * srcname, CS_INT srcnamelen, CS_INT desttype,
CS_CHAR * destname, CS_INT destnamelen, CS_INT * conv_multiplier, CS_CONV_FUNC * func);
CS_RETCODE cs_objects(CS_CONTEXT * ctx, CS_INT action, CS_OBJNAME * objname, CS_OBJDATA * objdata);
CS_RETCODE cs_set_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_INT desttype, CS_CONV_FUNC * func);
CS_RETCODE cs_setnull(CS_CONTEXT * ctx, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT buflen);
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,
CS_INT * result);
CS_RETCODE cs_time(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen, CS_DATEREC * daterec);
CS_RETCODE cs_will_convert(CS_CONTEXT * ctx, CS_INT srctype, CS_INT desttype, CS_BOOL * result);
const char * cs_prretcode(int retcode);
#ifdef __cplusplus
#if 0
{
#endif
}
#endif
#endif
|