#include <stdarg.h>
#include <stdio.h>
#include <time.h>
#include "tdsver.h"
#include "tds_sysdep_public.h"
Go to the source code of this file.
Defines | |
| #define | CANCEL_PROCESS 2 |
| #define | GOTO_1ST_ROW 3 |
| #define | is_ascii_type(x) ( x==XSYBCHAR || x==XSYBVARCHAR || x==SYBTEXT || x==SYBCHAR || x==SYBVARCHAR) |
| #define | is_binary_type(x) (x==SYBLONGBINARY) |
| #define | is_blob_type(x) (x==SYBTEXT || x==SYBIMAGE || x==SYBNTEXT) |
| #define | is_char_type(x) (is_unicode_type(x) || is_ascii_type(x)) |
| #define | IS_CLOSE 400 |
| #define | is_collate_type(x) (x==XSYBVARCHAR || x==XSYBCHAR || x==SYBTEXT || x==XSYBNVARCHAR || x==XSYBNCHAR || x==SYBNTEXT) |
| #define | IS_CURROW 200 |
| #define | IS_DECLARE 100 |
| #define | is_end_token(x) |
| #define | is_fixed_type(x) |
| #define | is_hard_end_token(x) |
| #define | is_msg_token(x) |
| #define | is_nullable_type(x) |
| #define | is_numeric_type(x) (x==SYBNUMERIC || x==SYBDECIMAL) |
| #define | IS_OPEN 300 |
| #define | is_result_token(x) |
| #define | is_similar_type(x, y) ((is_char_type(x) && is_char_type(y)) || ((is_unicode_type(x) && is_unicode_type(y)))) |
| #define | IS_TDS42(x) (x->major_version==4 && x->minor_version==2) |
| #define | IS_TDS46(x) (x->major_version==4 && x->minor_version==6) |
| #define | IS_TDS50(x) (x->major_version==5 && x->minor_version==0) |
| #define | IS_TDS70(x) (x->major_version==7 && x->minor_version==0) |
| #define | IS_TDS7_PLUS(x) ((x)->major_version>=7) |
| #define | IS_TDS80(x) (x->major_version==8 && x->minor_version==0) |
| #define | IS_TDS8_PLUS(x) ((x)->major_version>=8) |
| #define | IS_TDS90(x) (x->major_version==9 && x->minor_version==0) |
| #define | IS_TDSDEAD(x) (((x) == NULL) || TDS_IS_SOCKET_INVALID((x)->s)) |
| #define | is_unicode_type(x) (x==XSYBNVARCHAR || x==XSYBNCHAR || x==SYBNTEXT) |
| #define | is_variable_type(x) |
| #define | LOGIN 4 |
| #define | MAXPRECISION 80 |
| #define | PROCESS_RESULTS 1 |
| #define | PROCESS_ROWS 0 |
| #define | SYB5INT8 SYB5INT8 |
| #define | SYBAOPAVG 0x4f |
| #define | SYBAOPAVGU 0x50 |
| #define | SYBAOPCHECKSUM_AGG 0x72 |
| #define | SYBAOPCNT 0x4b |
| #define | SYBAOPCNT_BIG 0x09 |
| #define | SYBAOPCNTU 0x4c |
| #define | SYBAOPMAX 0x52 |
| #define | SYBAOPMIN 0x51 |
| #define | SYBAOPSTDEV 0x30 |
| #define | SYBAOPSTDEVP 0x31 |
| #define | SYBAOPSUM 0x4d |
| #define | SYBAOPSUMU 0x4e |
| #define | SYBAOPVAR 0x32 |
| #define | SYBAOPVARP 0x33 |
| #define | SYBBINARY SYBBINARY |
| #define | SYBBIT SYBBIT |
| #define | SYBBITN SYBBITN |
| #define | SYBBLOB SYBBLOB |
| #define | SYBBOUNDARY SYBBOUNDARY |
| #define | SYBCHAR SYBCHAR |
| #define | SYBDATE SYBDATE |
| #define | SYBDATEN SYBDATEN |
| #define | SYBDATETIME SYBDATETIME |
| #define | SYBDATETIME4 SYBDATETIME4 |
| #define | SYBDATETIMN SYBDATETIMN |
| #define | SYBDECIMAL SYBDECIMAL |
| #define | SYBFLT8 SYBFLT8 |
| #define | SYBFLTN SYBFLTN |
| #define | SYBIMAGE SYBIMAGE |
| #define | SYBINT1 SYBINT1 |
| #define | SYBINT2 SYBINT2 |
| #define | SYBINT4 SYBINT4 |
| #define | SYBINT8 SYBINT8 |
| #define | SYBINTERVAL SYBINTERVAL |
| #define | SYBINTN SYBINTN |
| #define | SYBLONGBINARY SYBLONGBINARY |
| #define | SYBLONGCHAR SYBLONGCHAR |
| #define | SYBMONEY SYBMONEY |
| #define | SYBMONEY4 SYBMONEY4 |
| #define | SYBMONEYN SYBMONEYN |
| #define | SYBNTEXT SYBNTEXT |
| #define | SYBNUMERIC SYBNUMERIC |
| #define | SYBNVARCHAR SYBNVARCHAR |
| #define | SYBREAL SYBREAL |
| #define | SYBSENSITIVITY SYBSENSITIVITY |
| #define | SYBSINT1 SYBSINT1 |
| #define | SYBTEXT SYBTEXT |
| #define | SYBTIME SYBTIME |
| #define | SYBTIMEN SYBTIMEN |
| #define | SYBUINT1 SYBUINT1 |
| #define | SYBUINT2 SYBUINT2 |
| #define | SYBUINT4 SYBUINT4 |
| #define | SYBUINT8 SYBUINT8 |
| #define | SYBUINTN SYBUINTN |
| #define | SYBUNIQUE SYBUNIQUE |
| #define | SYBUNITEXT SYBUNITEXT |
| #define | SYBVARBINARY SYBVARBINARY |
| #define | SYBVARCHAR SYBVARCHAR |
| #define | SYBVARIANT SYBVARIANT |
| #define | SYBVOID SYBVOID |
| #define | SYBXML SYBXML |
| #define | TDS5_DYNAMIC_TOKEN 231 |
| #define | TDS5_PARAMFMT2_TOKEN 32 |
| #define | TDS5_PARAMFMT_TOKEN 236 |
| #define | TDS5_PARAMS_TOKEN 215 |
| #define | TDS7_COMPUTE_RESULT_TOKEN 136 |
| #define | TDS7_RESULT_TOKEN 129 |
| #define | TDS_ALIGN_SIZE sizeof(tds_align_struct) |
| #define | TDS_AUTH_TOKEN 237 |
| #define | TDS_BYTE_SWAP16(value) |
| #define | TDS_BYTE_SWAP32(value) |
| #define | TDS_CANCELLED 3 |
| #define | TDS_CAPABILITY_TOKEN 226 |
| #define | TDS_CMD_DONE 4046 |
| #define | TDS_CMD_FAIL 4048 |
| #define | TDS_CMD_SUCCEED 4047 |
| #define | TDS_CMP_ROW_TOKEN 211 |
| #define | TDS_COLFMT_TOKEN 161 |
| #define | TDS_COLINFO_TOKEN 165 |
| #define | TDS_COLNAME_TOKEN 160 |
| #define | TDS_COMPUTE_NAMES_TOKEN 167 |
| #define | TDS_COMPUTE_RESULT 4045 |
| #define | TDS_COMPUTE_RESULT_TOKEN 168 |
| #define | TDS_COMPUTEFMT_RESULT 4050 |
| #define | TDS_CONTROL_TOKEN 174 |
| #define | TDS_CURCLOSE_TOKEN 128 |
| #define | TDS_CURDECLARE_TOKEN 134 |
| #define | TDS_CURDELETE_TOKEN 129 |
| #define | TDS_CURFETCH_TOKEN 130 |
| #define | TDS_CURINFO_TOKEN 131 |
| #define | TDS_CUROPEN_TOKEN 132 |
| #define | TDS_DBG_ERROR __FILE__, ((__LINE__ << 4) | 2) |
| #define | TDS_DBG_FUNC __FILE__, ((__LINE__ << 4) | 7) |
| #define | TDS_DBG_INFO1 __FILE__, ((__LINE__ << 4) | 5) |
| #define | TDS_DBG_INFO2 __FILE__, ((__LINE__ << 4) | 6) |
| #define | TDS_DBG_NETWORK __FILE__, ((__LINE__ << 4) | 4) |
| #define | TDS_DBG_SEVERE __FILE__, ((__LINE__ << 4) | 1) |
| #define | TDS_DBG_WARN __FILE__, ((__LINE__ << 4) | 3) |
| #define | TDS_DBGFLAG_ALLLVL 0xfff |
| #define | TDS_DBGFLAG_ERROR 0x04 |
| #define | TDS_DBGFLAG_FUNC 0x80 |
| #define | TDS_DBGFLAG_INFO1 0x20 |
| #define | TDS_DBGFLAG_INFO2 0x40 |
| #define | TDS_DBGFLAG_NETWORK 0x10 |
| #define | TDS_DBGFLAG_PID 0x1000 |
| #define | TDS_DBGFLAG_SEVERE 0x02 |
| #define | TDS_DBGFLAG_SOURCE 0x4000 |
| #define | TDS_DBGFLAG_THREAD 0x8000 |
| #define | TDS_DBGFLAG_TIME 0x2000 |
| #define | TDS_DBGFLAG_WARN 0x08 |
| #define | TDS_DBRPC_TOKEN 230 |
| #define | TDS_DEF_BLKSZ 512 |
| #define | TDS_DEF_CHARSET "iso_1" |
| #define | TDS_DEF_LANG "us_english" |
| #define | TDS_DEF_MAJOR 5 |
| #define | TDS_DEF_MINOR 0 |
| #define | TDS_DEF_PORT 4000 |
| #define | TDS_DEF_SERVER "SYBASE" |
| #define | TDS_DESCRIBE_RESULT 4051 |
| #define | TDS_DONE_RESULT 4052 |
| #define | TDS_DONE_TOKEN 253 |
| #define | TDS_DONEINPROC_RESULT 4054 |
| #define | TDS_DONEINPROC_TOKEN 255 |
| #define | TDS_DONEPROC_RESULT 4053 |
| #define | TDS_DONEPROC_TOKEN 254 |
| #define | TDS_DONT_RETURN 42 |
| #define | TDS_DYNAMIC2_TOKEN 163 |
| #define | TDS_EED_TOKEN 229 |
| #define | TDS_ENV_BEGINTRANS 8 |
| #define | TDS_ENV_CHARSET 3 |
| #define | TDS_ENV_COMMITTRANS 9 |
| #define | TDS_ENV_DATABASE 1 |
| #define | TDS_ENV_LANG 2 |
| #define | TDS_ENV_LCID 5 |
| #define | TDS_ENV_PACKSIZE 4 |
| #define | TDS_ENV_ROLLBACKTRANS 10 |
| #define | TDS_ENV_SQLCOLLATION 7 |
| #define | TDS_ENVCHANGE_TOKEN 227 |
| #define | TDS_ERROR 3 |
| #define | TDS_ERROR_TOKEN 170 |
| #define | TDS_FAIL 0 |
| #define | TDS_INFO_TOKEN 171 |
| #define | TDS_INT_CANCEL 2 |
| #define | TDS_INT_CONTINUE 1 |
| #define | TDS_INT_TIMEOUT 3 |
| #define | TDS_IS_MSSQL(x) ((x->product_version & 0x80000000u)!=0) |
| Check if product is Microsft SQL Server. | |
| #define | TDS_IS_SYBASE(x) (!(x->product_version & 0x80000000u)) |
| Check if product is Sybase (such as Adaptive Server Enterrprice). | |
| #define | TDS_LANGUAGE_TOKEN 33 |
| #define | TDS_LOGINACK_TOKEN 173 |
| #define | TDS_LOGOUT_TOKEN 113 |
| #define | TDS_MAX_CAPABILITY 22 |
| #define | TDS_MAX_CONN 4096 |
| #define | TDS_MAX_DYNID_LEN 30 |
| #define | TDS_MAX_LOGIN_STR_SZ 30 |
| #define | TDS_MS_VER(maj, min, x) (0x80000000u|((maj)<<24)|((min)<<16)|(x)) |
| Calc a version number for mssql. | |
| #define | TDS_MSG_RESULT 4044 |
| #define | TDS_NO_COUNT -1 |
| #define | TDS_NO_MORE_RESULTS 2 |
| #define | TDS_NULLTERM -9 |
| #define | TDS_OPTIONCMD_TOKEN 166 |
| #define | TDS_ORDERBY2_TOKEN 34 |
| #define | TDS_ORDERBY_TOKEN 169 |
| #define | TDS_OTHERS_RESULT 4055 |
| #define | TDS_PARAM_RESULT 4042 |
| #define | TDS_PARAM_TOKEN 172 |
| #define | TDS_PROCID_TOKEN 124 |
| #define | tds_put_tinyint(tds, ti) tds_put_byte(tds,ti) |
| Output a tinyint value. | |
| #define | TDS_RESULT_TOKEN 238 |
| #define | TDS_RETURNSTATUS_TOKEN 121 |
| #define | TDS_ROW_RESULT 4040 |
| #define | TDS_ROW_TOKEN 209 |
| #define | TDS_ROWFMT2_TOKEN 97 |
| #define | TDS_ROWFMT_RESULT 4049 |
| #define | TDS_SF_ACCENT_SENSITIVE (TDS_USMALLINT) 0x020 |
| #define | TDS_SF_BIN (TDS_USMALLINT) 0x100 |
| #define | TDS_SF_CASE_INSENSITIVE (TDS_USMALLINT) 0x010 |
| #define | TDS_SF_KATATYPE_INSENSITIVE (TDS_USMALLINT) 0x040 |
| #define | TDS_SF_WIDTH_INSENSITIVE (TDS_USMALLINT) 0x080 |
| #define | TDS_SP_CURSOR 1 |
| #define | TDS_SP_CURSORCLOSE 9 |
| #define | TDS_SP_CURSOREXECUTE 4 |
| #define | TDS_SP_CURSORFETCH 7 |
| #define | TDS_SP_CURSOROPEN 2 |
| #define | TDS_SP_CURSOROPTION 8 |
| #define | TDS_SP_CURSORPREPARE 3 |
| #define | TDS_SP_CURSORPREPEXEC 5 |
| #define | TDS_SP_CURSORUNPREPARE 6 |
| #define | TDS_SP_EXECUTE 12 |
| #define | TDS_SP_EXECUTESQL 10 |
| #define | TDS_SP_PREPARE 11 |
| #define | TDS_SP_PREPEXEC 13 |
| #define | TDS_SP_PREPEXECRPC 14 |
| #define | TDS_SP_UNPREPARE 15 |
| #define | TDS_STATUS_RESULT 4043 |
| #define | TDS_STR_APPENDMODE "dump file append" |
| #define | TDS_STR_BLKSZ "initial block size" |
| #define | TDS_STR_CHARSET "charset" |
| #define | TDS_STR_CLCHARSET "client charset" |
| #define | TDS_STR_CONNTIMEOUT "connect timeout" |
| #define | TDS_STR_DATEFMT "date format" |
| #define | TDS_STR_DEBUGFLAGS "debug flags" |
| #define | TDS_STR_DEBUGLVL "debug level" |
| #define | TDS_STR_DUMPFILE "dump file" |
| #define | TDS_STR_EMUL_LE "emulate little endian" |
| #define | TDS_STR_ENCRYPTION "encryption" |
| #define | TDS_STR_ENCRYPTION_OFF "off" |
| #define | TDS_STR_ENCRYPTION_REQUEST "request" |
| #define | TDS_STR_ENCRYPTION_REQUIRE "require" |
| #define | TDS_STR_HOST "host" |
| #define | TDS_STR_HOSTNAME "hostname" |
| #define | TDS_STR_INSTANCE "instance" |
| #define | TDS_STR_LANGUAGE "language" |
| #define | TDS_STR_PORT "port" |
| #define | TDS_STR_QUERY_TIMEOUT "query timeout" |
| #define | TDS_STR_SWAPDT "swap broken dates" |
| #define | TDS_STR_SWAPMNY "swap broken money" |
| #define | TDS_STR_TEXTSZ "text size" |
| #define | TDS_STR_TIMEOUT "timeout" |
| #define | TDS_STR_VERSION "tds version" |
| #define | TDS_SUCCEED 1 |
| #define | TDS_SYB_VER(maj, min, x) (((maj)<<24)|((min)<<16)|(x)<<8) |
| Calc a version number for Sybase. | |
| #define | TDS_TABNAME_TOKEN 164 |
| #define | TDS_TOKEN_FLAG(flag) TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2)) |
| #define | TDS_UT_TIMESTAMP 80 |
| #define | TDS_VECTOR_SIZE(x) (sizeof(x)/sizeof(x[0])) |
| #define | TDS_ZERO_FREE(x) do {free((x)); (x) = NULL;} while(0) |
| #define | XSYBBINARY XSYBBINARY |
| #define | XSYBCHAR XSYBCHAR |
| #define | XSYBNCHAR XSYBNCHAR |
| #define | XSYBNVARCHAR XSYBNVARCHAR |
| #define | XSYBVARBINARY XSYBVARBINARY |
| #define | XSYBVARCHAR XSYBVARCHAR |
Typedefs | |
| typedef _tds_bcpcoldata | BCPCOLDATA |
| typedef DSTR_STRUCT | DSTR |
| typedef char | TDS_CHAR |
| typedef _tds_compiletime_settings | TDS_COMPILETIME_SETTINGS |
| A structure to hold all the compile-time settings. | |
| typedef enum _tds_cursor_fetch | TDS_CURSOR_FETCH |
| typedef enum _tds_cursor_operation | TDS_CURSOR_OPERATION |
| typedef _tds_cursor_status | TDS_CURSOR_STATUS |
| typedef tdsdatetime | TDS_DATETIME |
| typedef tdsdatetime4 | TDS_DATETIME4 |
| typedef _tds_encoding | TDS_ENCODING |
| Information relevant to libiconv. | |
| typedef enum tds_encryption_level | TDS_ENCRYPTION_LEVEL |
| typedef tds_sysdep_real64_type | TDS_FLOAT |
| typedef tds_sysdep_int32_type | TDS_INT |
| typedef tds_sysdep_int64_type | TDS_INT8 |
| typedef tds_sysdep_intptr_type | TDS_INTPTR |
| typedef tdsmoney | TDS_MONEY |
| typedef tdsmoney4 | TDS_MONEY4 |
| typedef tdsnumeric | TDS_NUMERIC |
| typedef tdsoldmoney | TDS_OLD_MONEY |
| typedef tds_option_arg | TDS_OPTION_ARG |
| typedef enum tds_packet_type | TDS_PACKET_TYPE |
| typedef tds_sysdep_real32_type | TDS_REAL |
| typedef tds_sysdep_int16_type | TDS_SMALLINT |
| typedef enum _TDS_STATE | TDS_STATE |
| values for tds->state | |
| typedef unsigned char | TDS_TINYINT |
| typedef unsigned char | TDS_UCHAR |
| typedef unsigned tds_sysdep_int32_type | TDS_UINT |
| typedef unsigned tds_sysdep_int64_type | TDS_UINT8 |
| typedef tdsunique | TDS_UNIQUE |
| typedef unsigned tds_sysdep_int16_type | TDS_USMALLINT |
| typedef tdsvarbinary | TDS_VARBINARY |
| typedef tdsvarchar | TDS_VARCHAR |
| typedef tds_authentication | TDSAUTHENTICATION |
| typedef tds_blob | TDSBLOB |
| Information about blobs (e.g. | |
| typedef tds_column | TDSCOLUMN |
| Metadata about columns in regular and compute rows. | |
| typedef tds_result_info | TDSCOMPUTEINFO |
| typedef void(* | TDSCONFPARSE )(const char *option, const char *value, void *param) |
| typedef tds_connection | TDSCONNECTION |
| typedef tds_context | TDSCONTEXT |
| typedef _tds_cursor | TDSCURSOR |
| Holds informations about a cursor. | |
| typedef tdsdaterec | TDSDATEREC |
| information on data, used by tds_datecrack | |
| typedef tds_dynamic | TDSDYNAMIC |
| Holds information for a dynamic (also called prepared) query. | |
| typedef tds_env | TDSENV |
| Current environment as reported by the server. | |
| typedef tdsiconvinfo | TDSICONV |
| typedef tds_locale | TDSLOCALE |
| typedef tds_login | TDSLOGIN |
| typedef tds_message | TDSMESSAGE |
| typedef tds_multiple | TDSMULTIPLE |
| typedef TDSRESULTINFO | TDSPARAMINFO |
| typedef tds_result_info | TDSRESULTINFO |
| Hold information for any results. | |
| typedef tds_socket | TDSSOCKET |
| typedef tds_upd_col | TDSUPDCOL |
Enumerations | |
| enum | { TDS_CUR_ISTAT_UNUSED = 0x00, TDS_CUR_ISTAT_DECLARED = 0x01, TDS_CUR_ISTAT_OPEN = 0x02, TDS_CUR_ISTAT_CLOSED = 0x04, TDS_CUR_ISTAT_RDONLY = 0x08, TDS_CUR_ISTAT_UPDATABLE = 0x10, TDS_CUR_ISTAT_ROWCNT = 0x20, TDS_CUR_ISTAT_DEALLOC = 0x40 } |
| enum | { TDS_OPT_ARITHOVERFLOW = 0x01, TDS_OPT_NUMERICTRUNC = 0x02 } |
| enum | { TDS_SYSNAME_SIZE = 512 } |
| enum | _tds_cursor_fetch { TDS_CURSOR_FETCH_NEXT = 1, TDS_CURSOR_FETCH_PREV, TDS_CURSOR_FETCH_FIRST, TDS_CURSOR_FETCH_LAST, TDS_CURSOR_FETCH_ABSOLUTE, TDS_CURSOR_FETCH_RELATIVE } |
| enum | _tds_cursor_operation { TDS_CURSOR_POSITION = 0, TDS_CURSOR_UPDATE = 1, TDS_CURSOR_DELETE = 2, TDS_CURSOR_INSERT = 4 } |
| enum | _TDS_STATE { TDS_IDLE, TDS_QUERYING, TDS_PENDING, TDS_READING, TDS_DEAD } |
| values for tds->state More... | |
| enum | TDS_CURSOR_STATE { TDS_CURSOR_STATE_UNACTIONED = 0, TDS_CURSOR_STATE_REQUESTED = 1, TDS_CURSOR_STATE_SENT = 2, TDS_CURSOR_STATE_ACTIONED = 3 } |
| enum | TDS_DBG_LOG_STATE { TDS_DBG_LOGIN = (1 << 0), TDS_DBG_API = (1 << 1), TDS_DBG_ASYNC = (1 << 2), TDS_DBG_DIAG = (1 << 3), TDS_DBG_error = (1 << 4), TDS_DBG_PACKET = (1 << 5), TDS_DBG_LIBTDS = (1 << 6), TDS_DBG_CONFIG = (1 << 7), TDS_DBG_DEFAULT = 0xFE } |
| An attempt at better logging. More... | |
| enum | tds_encryption_level { TDS_ENCRYPTION_OFF, TDS_ENCRYPTION_REQUEST, TDS_ENCRYPTION_REQUIRE } |
| enum | tds_end { TDS_DONE_FINAL = 0x00, TDS_DONE_MORE_RESULTS = 0x01, TDS_DONE_ERROR = 0x02, TDS_DONE_INXACT = 0x04, TDS_DONE_PROC = 0x08, TDS_DONE_COUNT = 0x10, TDS_DONE_CANCELLED = 0x20, TDS_DONE_EVENT = 0x40, TDS_DONE_SRVERROR = 0x100, TDS_DONE_NO_TRAN = 0, TDS_DONE_TRAN_SUCCEED = 1, TDS_DONE_TRAN_PROGRESS = 2, TDS_DONE_STMT_ABORT = 3, TDS_DONE_TRAN_ABORT = 4 } |
| Flags returned in TDS_DONE token. More... | |
| enum | TDS_ICONV_ENTRY { client2ucs2, client2server_chardata, iso2server_metadata, initial_char_conv_count } |
| enum | TDS_MULTIPLE_TYPE { TDS_MULTIPLE_QUERY, TDS_MULTIPLE_EXECUTE, TDS_MULTIPLE_RPC } |
| enum | TDS_OPT_DATEFIRST_CHOICE { TDS_OPT_MONDAY = 1, TDS_OPT_TUESDAY = 2, TDS_OPT_WEDNESDAY = 3, TDS_OPT_THURSDAY = 4, TDS_OPT_FRIDAY = 5, TDS_OPT_SATURDAY, TDS_OPT_SUNDAY = 7 } |
| enum | TDS_OPT_DATEFORMAT_CHOICE { TDS_OPT_FMTMDY = 1, TDS_OPT_FMTDMY = 2, TDS_OPT_FMTYMD = 3, TDS_OPT_FMTYDM = 4, TDS_OPT_FMTMYD = 5, TDS_OPT_FMTDYM = 6 } |
| enum | TDS_OPT_ISOLATION_CHOICE { TDS_OPT_LEVEL1 = 1, TDS_OPT_LEVEL3 = 3 } |
| enum | TDS_OPTION { TDS_OPT_DATEFIRST = 1, TDS_OPT_TEXTSIZE = 2, TDS_OPT_STAT_TIME = 3, TDS_OPT_STAT_IO = 4, TDS_OPT_ROWCOUNT = 5, TDS_OPT_NATLANG = 6, TDS_OPT_DATEFORMAT = 7, TDS_OPT_ISOLATION = 8, TDS_OPT_AUTHON = 9, TDS_OPT_CHARSET = 10, TDS_OPT_SHOWPLAN = 13, TDS_OPT_NOEXEC = 14, TDS_OPT_ARITHIGNOREON = 15, TDS_OPT_ARITHABORTON = 17, TDS_OPT_PARSEONLY = 18, TDS_OPT_GETDATA = 20, TDS_OPT_NOCOUNT = 21, TDS_OPT_FORCEPLAN = 23, TDS_OPT_FORMATONLY = 24, TDS_OPT_CHAINXACTS = 25, TDS_OPT_CURCLOSEONXACT = 26, TDS_OPT_FIPSFLAG = 27, TDS_OPT_RESTREES = 28, TDS_OPT_IDENTITYON = 29, TDS_OPT_CURREAD = 30, TDS_OPT_CURWRITE = 31, TDS_OPT_IDENTITYOFF = 32, TDS_OPT_AUTHOFF = 33, TDS_OPT_ANSINULL = 34, TDS_OPT_QUOTED_IDENT = 35, TDS_OPT_ARITHIGNOREOFF = 36, TDS_OPT_ARITHABORTOFF = 37, TDS_OPT_TRUNCABORT = 38 } |
| enum | TDS_OPTION_CMD { TDS_OPT_SET = 1, TDS_OPT_DEFAULT = 2, TDS_OPT_LIST = 3, TDS_OPT_INFO = 4 } |
| options that can be sent with a TDS_OPTIONCMD token | |
| enum | tds_packet_type { TDS_QUERY = 1, TDS_LOGIN = 2, TDS_RPC = 3, TDS_REPLY = 4, TDS_CANCEL = 6, TDS_BULK = 7, TDS_NORMAL = 15, TDS7_LOGIN = 16, TDS7_AUTH = 17, TDS8_PRELOGIN = 18 } |
| enum | TDS_SERVER_TYPE { SYBCHAR = 47, SYBVARCHAR = 39, SYBINTN = 38, SYBINT1 = 48, SYBINT2 = 52, SYBINT4 = 56, SYBFLT8 = 62, SYBDATETIME = 61, SYBBIT = 50, SYBTEXT = 35, SYBNTEXT = 99, SYBIMAGE = 34, SYBMONEY4 = 122, SYBMONEY = 60, SYBDATETIME4 = 58, SYBREAL = 59, SYBBINARY = 45, SYBVOID = 31, SYBVARBINARY = 37, SYBBITN = 104, SYBNUMERIC = 108, SYBDECIMAL = 106, SYBFLTN = 109, SYBMONEYN = 110, SYBDATETIMN = 111, SYBNVARCHAR = 103, SYBINT8 = 127, XSYBCHAR = 175, XSYBVARCHAR = 167, XSYBNVARCHAR = 231, XSYBNCHAR = 239, XSYBVARBINARY = 165, XSYBBINARY = 173, SYBUNIQUE = 36, SYBVARIANT = 98, SYBLONGBINARY = 225, SYBUINT1 = 64, SYBUINT2 = 65, SYBUINT4 = 66, SYBUINT8 = 67, SYBBLOB = 36, SYBBOUNDARY = 104, SYBDATE = 49, SYBDATEN = 123, SYB5INT8 = 191, SYBINTERVAL = 46, SYBLONGCHAR = 175, SYBSENSITIVITY = 103, SYBSINT1 = 176, SYBTIME = 51, SYBTIMEN = 147, SYBUINTN = 68, SYBUNITEXT = 174, SYBXML = 163, SYBXML = 163 } |
| enum | tds_token_flags { TDS_HANDLE_ALL = 0, OTHERS, ROWFMT, COMPUTEFMT, PARAMFMT, DONE, ROW, COMPUTE, PROC, MSG, TDS_TOKEN_RESULTS = TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC, TDS_TOKEN_TRAILING = TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS } |
| enum | tds_token_results { TDS_TOKEN_RES_OTHERS, TDS_TOKEN_RES_ROWFMT, TDS_TOKEN_RES_COMPUTEFMT, TDS_TOKEN_RES_PARAMFMT, TDS_TOKEN_RES_DONE, TDS_TOKEN_RES_ROW, TDS_TOKEN_RES_COMPUTE, TDS_TOKEN_RES_PROC, TDS_TOKEN_RES_MSG } |
| enum | TDS_USER_TYPE { USER_UNICHAR_TYPE = 34, USER_UNIVARCHAR_TYPE = 35 } |
| enum | TDSERRNO { TDSEICONVIU = 2400, TDSEICONVAVAIL = 2401, TDSEICONVO = 2402, TDSEICONVI = 2403, TDSEICONV2BIG = 2404, TDSESYNC = 20001, TDSEFCON = 20002, TDSETIME = 20003, TDSEREAD = 20004, TDSEWRIT = 20006, TDSESOCK = 20008, TDSECONN = 20009, TDSEPWD = 20014, TDSESEOF = 20017, TDSERPND = 20019, TDSEBTOK = 20020, TDSEOOB = 20022, TDSECLOS = 20056, TDSEUSCT = 20058, TDSEUTDS = 20146, TDSEEUNR = 20185, TDSECAP = 20203, TDSENEG = 20210, TDSEUMSG = 20212, TDSECAPTYP = 20213, TDSECLOSEIN = 20292 } |
Functions | |
| int | tds5_send_optioncmd (TDSSOCKET *tds, TDS_OPTION_CMD tds_command, TDS_OPTION tds_option, TDS_OPTION_ARG *tds_argument, TDS_INT *tds_argsize) |
| unsigned char * | tds7_crypt_pass (const unsigned char *clear_pass, int len, unsigned char *crypt_pass) |
| tds7_crypt_pass() -- 'encrypt' TDS 7.0 style passwords. | |
| int | tds7_get_instance_port (const char *ip_addr, const char *instance) |
| Get port of given instance. | |
| void | tds7_srv_charset_changed (TDSSOCKET *tds, int sql_collate, int lcid) |
| BCPCOLDATA * | tds_alloc_bcp_column_data (int column_size) |
| char * | tds_alloc_client_sqlstate (int msgno) |
| TDSCOMPUTEINFO ** | tds_alloc_compute_results (TDSSOCKET *tds, int num_cols, int by_cols) |
| int | tds_alloc_compute_row (TDSCOMPUTEINFO *res_info) |
| TDSCONNECTION * | tds_alloc_connection (TDSLOCALE *locale) |
| Allocate space for configure structure and initialize with default values. | |
| TDSCONTEXT * | tds_alloc_context (void *parent) |
| TDSCURSOR * | tds_alloc_cursor (TDSSOCKET *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen) |
| TDSDYNAMIC * | tds_alloc_dynamic (TDSSOCKET *tds, const char *id) |
| Allocate a dynamic statement. | |
| TDSLOCALE * | tds_alloc_locale (void) |
| TDSLOGIN * | tds_alloc_login (void) |
| char * | tds_alloc_lookup_sqlstate (TDSSOCKET *tds, int msgno) |
| void * | tds_alloc_param_data (TDSCOLUMN *curparam) |
| Allocate data for a parameter. | |
| TDSPARAMINFO * | tds_alloc_param_result (TDSPARAMINFO *old_param) |
| Adds a output parameter to TDSPARAMINFO. | |
| TDSRESULTINFO * | tds_alloc_results (int num_cols) |
| int | tds_alloc_row (TDSRESULTINFO *res_info) |
| Allocate space for row store return NULL on out of memory. | |
| TDSSOCKET * | tds_alloc_socket (TDSCONTEXT *context, int bufsize) |
| int | tds_close_socket (TDSSOCKET *tds) |
| void | tds_config_verstr (const char *tdsver, TDSCONNECTION *connection) |
| Set TDS version from given string. | |
| int | tds_connect (TDSSOCKET *tds, TDSCONNECTION *connection) |
| Do a connection to socket. | |
| int | tds_count_placeholders (const char *query) |
| Count the number of placeholders in query. | |
| int | tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor) |
| int | tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor) |
| Send a deallocation request to server libTDS care for all deallocation stuff (memory and server cursor) Caller should not use cursor pointer anymore. | |
| void | tds_cursor_deallocated (TDSSOCKET *tds, TDSCURSOR *cursor) |
| int | tds_cursor_declare (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send) |
| int | tds_cursor_fetch (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row) |
| int | tds_cursor_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send) |
| int | tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor) |
| int | tds_cursor_setrows (TDSSOCKET *tds, TDSCURSOR *cursor, int *send) |
| int | tds_cursor_update (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO *params) |
| TDS_INT | tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr) |
| Convert from db date format to a structured date format. | |
| void | tds_fix_connection (TDSCONNECTION *connection) |
| Fix configuration after reading it. | |
| int | tds_flush_packet (TDSSOCKET *tds) |
| Flush packet to server. | |
| void | tds_free_all_results (TDSSOCKET *tds) |
| void | tds_free_bcp_column_data (BCPCOLDATA *coldata) |
| void | tds_free_connection (TDSCONNECTION *connection) |
| void | tds_free_context (TDSCONTEXT *locale) |
| void | tds_free_dynamic (TDSSOCKET *tds, TDSDYNAMIC *dyn) |
| Frees dynamic statement and remove from TDS. | |
| void | tds_free_input_params (TDSDYNAMIC *dyn) |
| Frees all allocated input parameters of a dynamic statement. | |
| void | tds_free_locale (TDSLOCALE *locale) |
| void | tds_free_login (TDSLOGIN *login) |
| void | tds_free_msg (TDSMESSAGE *message) |
| void | tds_free_param_result (TDSPARAMINFO *param_info) |
| Delete latest parameter. | |
| void | tds_free_param_results (TDSPARAMINFO *param_info) |
| void | tds_free_result_info (TDSRESULTINFO *info) |
| void | tds_free_results (TDSRESULTINFO *res_info) |
| void | tds_free_row (TDSRESULTINFO *res_info, unsigned char *row) |
| void | tds_free_socket (TDSSOCKET *tds) |
| unsigned char | tds_get_byte (TDSSOCKET *tds) |
| int | tds_get_char_data (TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol) |
| Fetch character data the wire. | |
| const TDS_COMPILETIME_SETTINGS * | tds_get_compiletime_settings (void) |
| Return a structure capturing the compile-time settings provided to the configure script. | |
| int | tds_get_conversion_type (int srctype, int colsize) |
| Return type suitable for conversions (convert all nullable types to fixed type). | |
| int | tds_get_dynid (TDSSOCKET *tds, char **id) |
| Get an id for dynamic query based on TDS information. | |
| char * | tds_get_homedir (void) |
| Get user home directory. | |
| TDS_INT | tds_get_int (TDSSOCKET *tds) |
| Get an int32 from the server. | |
| TDS_INT8 | tds_get_int8 (TDSSOCKET *tds) |
| TDSLOCALE * | tds_get_locale (void) |
| Get locale information. | |
| void * | tds_get_n (TDSSOCKET *tds, void *dest, int n) |
| Get N bytes from the buffer and return them in the already allocated space given to us. | |
| void * | tds_get_parent (TDSSOCKET *tds) |
| int | tds_get_size_by_type (int servertype) |
| Return the number of bytes needed by specified type. | |
| TDS_SMALLINT | tds_get_smallint (TDSSOCKET *tds) |
| Get an int16 from the server. | |
| int | tds_get_string (TDSSOCKET *tds, int string_len, char *dest, size_t dest_size) |
| Fetch a string from the wire. | |
| int | tds_get_token_size (int marker) |
| tds_get_token_size() returns the size of a fixed length token used by tds_process_cancel() to determine how to read past a token | |
| hostent * | tds_gethostbyaddr_r (const char *addr, int len, int type, struct hostent *result, char *buffer, int buflen, int *h_errnop) |
| hostent * | tds_gethostbyname_r (const char *servername, struct hostent *result, char *buffer, int buflen, int *h_errnop) |
| void | tds_getmac (int s, unsigned char mac[6]) |
| servent * | tds_getservbyname_r (const char *name, const char *proto, struct servent *result, char *buffer, int buflen) |
| unsigned int | tds_gettime_ms (void) |
| TDSAUTHENTICATION * | tds_gss_get_auth (TDSSOCKET *tds) |
| int | tds_iconv_alloc (TDSSOCKET *tds) |
| Allocate iconv stuff. | |
| void | tds_iconv_close (TDSSOCKET *tds) |
| void | tds_iconv_free (TDSSOCKET *tds) |
| TDSICONV * | tds_iconv_from_collate (TDSSOCKET *tds, int sql_collate, int lcid) |
| Get iconv information from a LCID (to support different column encoding under MSSQL2K). | |
| void | tds_iconv_open (TDSSOCKET *tds, const char *charset) |
| int | tds_init_write_buf (TDSSOCKET *tds) |
| TDSDYNAMIC * | tds_lookup_dynamic (TDSSOCKET *tds, char *id) |
| Find a dynamic given string id. | |
| void | tds_lookup_host (const char *servername, char *ip) |
| Given a servername lookup the hostname. | |
| char * | tds_money_to_string (const TDS_MONEY *money, char *s) |
| int | tds_multiple_done (TDSSOCKET *tds, TDSMULTIPLE *multiple) |
| int | tds_multiple_execute (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC *dyn) |
| int | tds_multiple_init (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type) |
| int | tds_multiple_query (TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO *params) |
| const char * | tds_next_placeholder (const char *start) |
| Get position of next placeholder. | |
| TDSAUTHENTICATION * | tds_ntlm_get_auth (TDSSOCKET *tds) |
| Build a NTLMSPP packet to send to server. | |
| TDS_INT | tds_numeric_change_prec_scale (TDS_NUMERIC *numeric, unsigned char new_prec, unsigned char new_scale) |
| TDS_INT | tds_numeric_to_string (const TDS_NUMERIC *numeric, char *s) |
| int | tds_open_socket (TDSSOCKET *tds, const char *ip_addr, unsigned int port, int timeout) |
| unsigned char | tds_peek (TDSSOCKET *tds) |
| int | tds_process_cancel (TDSSOCKET *tds) |
| int | tds_process_login_tokens (TDSSOCKET *tds) |
| tds_process_login_tokens() is called after sending the login packet to the server. | |
| int | tds_process_simple_query (TDSSOCKET *tds) |
| Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded. | |
| int | tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag) |
| process all streams. | |
| const char * | tds_prtype (int token) |
| int | tds_put_buf (TDSSOCKET *tds, const unsigned char *buf, int dsize, int ssize) |
| int | tds_put_byte (TDSSOCKET *tds, unsigned char c) |
| int | tds_put_int (TDSSOCKET *tds, TDS_INT i) |
| int | tds_put_int8 (TDSSOCKET *tds, TDS_INT8 i) |
| int | tds_put_n (TDSSOCKET *tds, const void *buf, int n) |
| int | tds_put_smallint (TDSSOCKET *tds, TDS_SMALLINT si) |
| int | tds_put_string (TDSSOCKET *tds, const char *buf, int len) |
| Output a string to wire automatic translate string to unicode if needed. | |