NCBI C++ ToolKit
Classes | Macros | Typedefs | Enumerations | Functions | Variables
tds.h File Reference

Main include file for libtds. More...

#include <stdarg.h>
#include <stdio.h>
#include <time.h>
#include <sys/types.h>
#include <config.h>
#include <freetds/version.h>
#include "tds_sysdep_public.h"
#include <freetds/sysdep_private.h>
#include <freetds/thread.h>
#include <freetds/bool.h>
#include "replacements.h"
#include <freetds/pushvis.h>
#include <freetds/proto.h>
#include <freetds/popvis.h>
+ Include dependency graph for tds.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Go to the SVN repository for this file.

Classes

struct  tds_compiletime_settings
 A structure to hold all the compile-time settings. More...
 
struct  tds_dstr
 Structure to hold a string. More...
 
struct  TDS_DATETIMEALL
 this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information. More...
 
struct  tdsdaterec
 Used by tds_datecrack. More...
 
union  tds_option_arg
 
union  tds_align_struct
 
struct  tds_capability_type
 
struct  tds_capabilities
 
struct  tds_login
 
struct  tds_headers
 
struct  tds_locale
 
struct  tds_blob
 Information about blobs (e.g. More...
 
struct  tds_variant
 Store variant informations. More...
 
struct  tds_encoding
 Information relevant to libiconv. More...
 
struct  tds_bcpcoldata
 
struct  tds_column_funcs
 
struct  tds_column
 Metadata about columns in regular and compute rows. More...
 
struct  tds_result_info
 Hold information for any results. More...
 
struct  tds_message
 
struct  tds_upd_col
 
struct  tds_cursor_status
 
struct  tds_cursor
 Holds informations about a cursor. More...
 
struct  tds_env
 Current environment as reported by the server. More...
 
struct  tds_dynamic
 Holds information for a dynamic (also called prepared) query. More...
 
struct  tds_multiple
 
struct  tds_context
 
struct  tds_authentication
 
struct  tds_packet
 
struct  tds_poll_wakeup
 
struct  tds_connection
 
struct  tds_socket
 Information for a server connection. More...
 
struct  tds_bcpinfo
 

Macros

#define TDS_INVALID_TYPE   ((TDS_SERVER_TYPE) 0)
 
#define TDS_NO_MORE_RESULTS   ((TDSRET)1)
 
#define TDS_SUCCESS   ((TDSRET)0)
 
#define TDS_FAIL   ((TDSRET)-1)
 
#define TDS_CANCELLED   ((TDSRET)-2)
 
#define TDS_FAILED(rc)   ((rc)<0)
 
#define TDS_SUCCEED(rc)   ((rc)>=0)
 
#define TDS_INT_CONTINUE   1
 
#define TDS_INT_CANCEL   2
 
#define TDS_INT_TIMEOUT   3
 
#define TDS_NO_COUNT   -1
 
#define TDS_ROW_RESULT   4040
 
#define TDS_PARAM_RESULT   4042
 
#define TDS_STATUS_RESULT   4043
 
#define TDS_MSG_RESULT   4044
 
#define TDS_COMPUTE_RESULT   4045
 
#define TDS_CMD_DONE   4046
 
#define TDS_CMD_SUCCEED   4047
 
#define TDS_CMD_FAIL   4048
 
#define TDS_ROWFMT_RESULT   4049
 
#define TDS_COMPUTEFMT_RESULT   4050
 
#define TDS_DESCRIBE_RESULT   4051
 
#define TDS_DONE_RESULT   4052
 
#define TDS_DONEPROC_RESULT   4053
 
#define TDS_DONEINPROC_RESULT   4054
 
#define TDS_OTHERS_RESULT   4055
 
#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_NULLTERM   -9
 
#define TDS_ZERO_FREE(x)   do {free((x)); (x) = NULL;} while(0)
 
#define TDS_VECTOR_SIZE(x)   (sizeof(x)/sizeof(x[0]))
 
#define TDS_OFFSET(str, field)   (((char*)&((str*)0)->field)-((char*)0))
 
#define TDS_LIKELY(x)   (x)
 
#define TDS_UNLIKELY(x)   (x)
 
#define TDS_COMPILE_CHECK(name, check)    extern int disabled_check_##name
 
#define TDS_EXTRA_CHECK(stmt)
 
#define TDS_WUR
 
#define TDS_BYTE_SWAP16(value)
 
#define TDS_BYTE_SWAP32(value)
 
#define is_end_token(x)
 
#define is_fixed_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)
 
#define is_nullable_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)
 
#define is_variable_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) != 0)
 
#define is_blob_type(x)   ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)
 
#define is_blob_col(x)
 
#define is_numeric_type(x)   ((x)==SYBNUMERIC || (x)==SYBDECIMAL)
 
#define is_datetime_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)
 return true if type is a datetime (but not date or time) More...
 
#define is_unicode_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != 0)
 
#define is_collate_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)
 
#define is_ascii_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)
 
#define is_char_type(x)   ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)
 
#define is_similar_type(x, y)   (is_char_type(x) && is_char_type(y))
 
#define TDS_MAX_CAPABILITY   32
 
#define MAXPRECISION   77
 
#define TDS_MAX_CONN   4096
 
#define TDS_MAX_DYNID_LEN   30
 
#define TDS_DEF_SERVER   "SYBASE"
 
#define TDS_DEF_BLKSZ   512
 
#define TDS_DEF_CHARSET   "iso_1"
 
#define TDS_DEF_LANG   "us_english"
 
#define TDS_DEFAULT_VERSION   0x000
 
#define TDS_DEF_PORT   1433
 
#define TDS_STR_VERSION   "tds version"
 
#define TDS_STR_BLKSZ   "initial block size"
 
#define TDS_STR_SWAPDT   "swap broken dates"
 
#define TDS_STR_DUMPFILE   "dump file"
 
#define TDS_STR_DEBUGLVL   "debug level"
 
#define TDS_STR_DEBUGFLAGS   "debug flags"
 
#define TDS_STR_TIMEOUT   "timeout"
 
#define TDS_STR_QUERY_TIMEOUT   "query timeout"
 
#define TDS_STR_CONNTIMEOUT   "connect timeout"
 
#define TDS_STR_HOSTNAME   "hostname"
 
#define TDS_STR_HOST   "host"
 
#define TDS_STR_PORT   "port"
 
#define TDS_STR_TEXTSZ   "text size"
 
#define TDS_STR_EMUL_LE   "emulate little endian"
 
#define TDS_STR_CHARSET   "charset"
 
#define TDS_STR_CLCHARSET   "client charset"
 
#define TDS_STR_USE_UTF_16   "use utf-16"
 
#define TDS_STR_LANGUAGE   "language"
 
#define TDS_STR_APPENDMODE   "dump file append"
 
#define TDS_STR_DATEFMT   "date format"
 
#define TDS_STR_INSTANCE   "instance"
 
#define TDS_STR_ASA_DATABASE   "asa database"
 
#define TDS_STR_DATABASE   "database"
 
#define TDS_STR_ENCRYPTION   "encryption"
 
#define TDS_STR_USENTLMV2   "use ntlmv2"
 
#define TDS_STR_USELANMAN   "use lanman"
 
#define TDS_STR_ENCRYPTION_OFF   "off"
 
#define TDS_STR_ENCRYPTION_REQUEST   "request"
 
#define TDS_STR_ENCRYPTION_REQUIRE   "require"
 
#define TDS_GSSAPI_DELEGATION   "enable gssapi delegation"
 
#define TDS_STR_REALM   "realm"
 
#define TDS_STR_SPN   "spn"
 
#define TDS_STR_CAFILE   "ca file"
 
#define TDS_STR_CRLFILE   "crl file"
 
#define TDS_STR_CHECKSSLHOSTNAME   "check certificate hostname"
 
#define TDS_STR_DBFILENAME   "database filename"
 
#define TDS_STR_READONLY_INTENT   "read-only intent"
 
#define TLS_STR_OPENSSL_CIPHERS   "openssl ciphers"
 
#define TDS_ALIGN_SIZE   sizeof(tds_align_struct)
 
#define TDS_MAX_LOGIN_STR_SZ   128
 
#define TDS_DBG_LOGIN   __FILE__, ((__LINE__ << 4) | 11)
 
#define TDS_DBG_HEADER   __FILE__, ((__LINE__ << 4) | 10)
 
#define TDS_DBG_FUNC   __FILE__, ((__LINE__ << 4) | 7)
 
#define TDS_DBG_INFO2   __FILE__, ((__LINE__ << 4) | 6)
 
#define TDS_DBG_INFO1   __FILE__, ((__LINE__ << 4) | 5)
 
#define TDS_DBG_NETWORK   __FILE__, ((__LINE__ << 4) | 4)
 
#define TDS_DBG_WARN   __FILE__, ((__LINE__ << 4) | 3)
 
#define TDS_DBG_ERROR   __FILE__, ((__LINE__ << 4) | 2)
 
#define TDS_DBG_SEVERE   __FILE__, ((__LINE__ << 4) | 1)
 
#define TDS_DBGFLAG_FUNC   0x80
 
#define TDS_DBGFLAG_INFO2   0x40
 
#define TDS_DBGFLAG_INFO1   0x20
 
#define TDS_DBGFLAG_NETWORK   0x10
 
#define TDS_DBGFLAG_WARN   0x08
 
#define TDS_DBGFLAG_ERROR   0x04
 
#define TDS_DBGFLAG_SEVERE   0x02
 
#define TDS_DBGFLAG_ALL   0xfff
 
#define TDS_DBGFLAG_LOGIN   0x0800
 
#define TDS_DBGFLAG_HEADER   0x0400
 
#define TDS_DBGFLAG_PID   0x1000
 
#define TDS_DBGFLAG_TIME   0x2000
 
#define TDS_DBGFLAG_SOURCE   0x4000
 
#define TDS_DBGFLAG_THREAD   0x8000
 
#define tds_get_ctx(tds)   ((tds)->conn->tds_ctx)
 
#define tds_set_ctx(tds, val)   do { ((tds)->conn->tds_ctx) = (val); } while(0)
 
#define tds_get_parent(tds)   ((tds)->parent)
 
#define tds_set_parent(tds, val)   do { ((tds)->parent) = (val); } while(0)
 
#define tds_get_s(tds)   ((tds)->conn->s)
 
#define tds_set_s(tds, val)   do { ((tds)->conn->s) = (val); } while(0)
 
#define TDS_RESIZE(p, n_elem)    tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))
 
#define tds_new(type, n)   ((type *) malloc(sizeof(type) * (n)))
 
#define tds_new0(type, n)   ((type *) calloc(n, sizeof(type)))
 
#define tds_convert_string_free(original, converted)    do { if (original != converted) free((char*) converted); } while(0)
 
#define tds_put_tinyint(tds, ti)   tds_put_byte(tds,ti)
 Output a tinyint value. More...
 
#define tds_get_smallint(tds)   ((TDS_SMALLINT) tds_get_usmallint(tds))
 
#define tds_get_int(tds)   ((TDS_INT) tds_get_uint(tds))
 
#define tds_get_int8(tds)   ((TDS_INT8) tds_get_uint8(tds))
 
#define TDSDUMP_LOG_FAST    if (TDS_UNLIKELY(tds_write_dump && !tdsdump_elided)) tdsdump_do_log
 
#define tdsdump_log   TDSDUMP_LOG_FAST
 
#define TDSDUMP_BUF_FAST    if (TDS_UNLIKELY(tds_write_dump && !tdsdump_elided)) tdsdump_do_dump_buf
 
#define tdsdump_dump_buf   TDSDUMP_BUF_FAST
 
#define TDSSELREAD   POLLIN
 
#define TDSSELWRITE   POLLOUT
 
#define tds_capability_has_req(conn, cap)    tds_capability_enabled(&conn->capabilities.types[0], cap)
 
#define IS_TDS42(x)   (x->tds_version==0x402)
 
#define IS_TDS46(x)   (x->tds_version==0x406)
 
#define IS_TDS50(x)   (x->tds_version==0x500)
 
#define IS_TDS70(x)   (x->tds_version==0x700)
 
#define IS_TDS71(x)   (x->tds_version==0x701)
 
#define IS_TDS72(x)   (x->tds_version==0x702)
 
#define IS_TDS73(x)   (x->tds_version==0x703)
 
#define IS_TDS50_PLUS(x)   ((x)->tds_version>=0x500)
 
#define IS_TDS7_PLUS(x)   ((x)->tds_version>=0x700)
 
#define IS_TDS71_PLUS(x)   ((x)->tds_version>=0x701)
 
#define IS_TDS72_PLUS(x)   ((x)->tds_version>=0x702)
 
#define IS_TDS73_PLUS(x)   ((x)->tds_version>=0x703)
 
#define IS_TDS74_PLUS(x)   ((x)->tds_version>=0x704)
 
#define TDS_MAJOR(x)   ((x)->tds_version >> 8)
 
#define TDS_MINOR(x)   ((x)->tds_version & 0xff)
 
#define IS_TDSDEAD(x)   (((x) == NULL) || (x)->state == TDS_DEAD)
 
#define TDS_IS_SYBASE(x)   (!((x)->conn->product_version & 0x80000000u))
 Check if product is Sybase (such as Adaptive Server Enterrprice). More...
 
#define TDS_IS_MSSQL(x)   (((x)->conn->product_version & 0x80000000u)!=0)
 Check if product is Microsft SQL Server. More...
 
#define TDS_MS_VER(maj, min, x)   (0x80000000u|((maj)<<24)|((min)<<16)|(x))
 Calc a version number for mssql. More...
 
#define TDS_SYB_VER(maj, min, x)   (((maj)<<24)|((min)<<16)|(x)<<8)
 Calc a version number for Sybase. More...
 
#define TDS_PUT_INT(tds, v)   tds_put_int((tds), ((TDS_INT)(v)))
 
#define TDS_PUT_SMALLINT(tds, v)   tds_put_smallint((tds), ((TDS_SMALLINT)(v)))
 
#define TDS_PUT_BYTE(tds, v)   tds_put_byte((tds), ((unsigned char)(v)))
 

Typedefs

typedef struct tdsiconvinfo TDSICONV
 
typedef struct tds_connection TDSCONNECTION
 
typedef struct tds_socket TDSSOCKET
 
typedef struct tds_column TDSCOLUMN
 
typedef struct tds_bcpinfo TDSBCPINFO
 
typedef struct tds_authentication TDSAUTHENTICATION
 
typedef struct tds_bcpcoldata BCPCOLDATA
 
typedef struct tds_capabilities TDS_CAPABILITIES
 
typedef struct tds_capability_type TDS_CAPABILITY_TYPE
 
typedef struct tds_column_funcs TDSCOLUMNFUNCS
 
typedef struct tds_context TDSCONTEXT
 
typedef struct tds_cursor TDSCURSOR
 
typedef struct tds_cursor_status TDS_CURSOR_STATUS
 
typedef struct tds_dstrDSTR
 
typedef struct tds_dynamic TDSDYNAMIC
 
typedef struct tds_env TDSENV
 
typedef struct tds_locale TDSLOCALE
 
typedef struct tds_login TDSLOGIN
 
typedef struct tds_packet TDSPACKET
 
typedef struct tds_poll_wakeup TDSPOLLWAKEUP
 
typedef struct tds_result_info TDSCOMPUTEINFO
 
typedef struct tds_result_info TDSRESULTINFO
 
typedef TDSRESULTINFO TDSPARAMINFO
 
typedef struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
 A structure to hold all the compile-time settings. More...
 
typedef char TDS_CHAR
 
typedef unsigned char TDS_UCHAR
 
typedef unsigned char TDS_TINYINT
 
typedef tds_sysdep_int16_type TDS_SMALLINT
 
typedef tds_sysdep_uint16_type TDS_USMALLINT
 
typedef tds_sysdep_int32_type TDS_INT
 
typedef tds_sysdep_uint32_type TDS_UINT
 
typedef tds_sysdep_real32_type TDS_REAL
 
typedef tds_sysdep_real64_type TDS_FLOAT
 
typedef tds_sysdep_int64_type TDS_INT8
 
typedef tds_sysdep_uint64_type TDS_UINT8
 
typedef tds_sysdep_intptr_type TDS_INTPTR
 
typedef tds_sysdep_uintptr_type TDS_UINTPTR
 
typedef struct tdsdaterec TDSDATEREC
 Used by tds_datecrack. More...
 
typedef int TDSRET
 
typedef union tds_option_arg TDS_OPTION_ARG
 
typedef enum tds_encryption_level TDS_ENCRYPTION_LEVEL
 
typedef struct tds_headers TDSHEADERS
 
typedef struct tds_blob TDSBLOB
 Information about blobs (e.g. More...
 
typedef struct tds_variant TDSVARIANT
 Store variant informations. More...
 
typedef struct tds_encoding TDS_ENCODING
 Information relevant to libiconv. More...
 
typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
 
typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col)
 
typedef TDS_INT tds_func_row_len(TDSCOLUMN *col)
 
typedef unsigned tds_func_put_info_len(TDSSOCKET *tds, TDSCOLUMN *col)
 
typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
 
typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
 
typedef int tds_func_check(const TDSCOLUMN *col)
 
typedef enum tds_states TDS_STATE
 values for tds->state More...
 
typedef enum tds_operations TDS_OPERATION
 
typedef struct tds_message TDSMESSAGE
 
typedef struct tds_upd_col TDSUPDCOL
 
typedef enum tds_cursor_operation TDS_CURSOR_OPERATION
 
typedef enum tds_cursor_fetch TDS_CURSOR_FETCH
 
typedef struct tds_multiple TDSMULTIPLE
 
typedef int(* err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)
 
typedef void(* TDSCONFPARSE) (const char *option, const char *value, void *param)
 
typedef TDSRET(* tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset)
 
typedef void(* tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset)
 

Enumerations

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 , TDS_TOKEN_RES_ENV , 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 , TDS_TOKEN_RES_ENV
}
 
enum  tds_token_flags {
  TDS_HANDLE_ALL = 0 , TDS_RETURN_OTHERS = (1 << (TDS_TOKEN_RES_OTHERS *2)) , TDS_STOPAT_OTHERS = (2 << (TDS_TOKEN_RES_OTHERS *2)) , TDS_RETURN_ROWFMT = (1 << (TDS_TOKEN_RES_ROWFMT *2)) ,
  TDS_STOPAT_ROWFMT = (2 << (TDS_TOKEN_RES_ROWFMT *2)) , TDS_RETURN_COMPUTEFMT = (1 << (TDS_TOKEN_RES_COMPUTEFMT *2)) , TDS_STOPAT_COMPUTEFMT = (2 << (TDS_TOKEN_RES_COMPUTEFMT *2)) , TDS_RETURN_PARAMFMT = (1 << (TDS_TOKEN_RES_PARAMFMT *2)) ,
  TDS_STOPAT_PARAMFMT = (2 << (TDS_TOKEN_RES_PARAMFMT *2)) , TDS_RETURN_DONE = (1 << (TDS_TOKEN_RES_DONE *2)) , TDS_STOPAT_DONE = (2 << (TDS_TOKEN_RES_DONE *2)) , TDS_RETURN_ROW = (1 << (TDS_TOKEN_RES_ROW *2)) ,
  TDS_STOPAT_ROW = (2 << (TDS_TOKEN_RES_ROW *2)) , TDS_RETURN_COMPUTE = (1 << (TDS_TOKEN_RES_COMPUTE *2)) , TDS_STOPAT_COMPUTE = (2 << (TDS_TOKEN_RES_COMPUTE *2)) , TDS_RETURN_PROC = (1 << (TDS_TOKEN_RES_PROC *2)) ,
  TDS_STOPAT_PROC = (2 << (TDS_TOKEN_RES_PROC *2)) , TDS_RETURN_MSG = (1 << (TDS_TOKEN_RES_MSG *2)) , TDS_STOPAT_MSG = (2 << (TDS_TOKEN_RES_MSG *2)) , TDS_RETURN_ENV = (1 << (TDS_TOKEN_RES_ENV *2)) ,
  TDS_STOPAT_ENV = (2 << (TDS_TOKEN_RES_ENV *2)) , 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 , TDS_HANDLE_ALL = 0 ,
  TDS_RETURN_OTHERS = (1 << (TDS_TOKEN_RES_OTHERS *2)) , TDS_STOPAT_OTHERS = (2 << (TDS_TOKEN_RES_OTHERS *2)) , TDS_RETURN_ROWFMT = (1 << (TDS_TOKEN_RES_ROWFMT *2)) , TDS_STOPAT_ROWFMT = (2 << (TDS_TOKEN_RES_ROWFMT *2)) ,
  TDS_RETURN_COMPUTEFMT = (1 << (TDS_TOKEN_RES_COMPUTEFMT *2)) , TDS_STOPAT_COMPUTEFMT = (2 << (TDS_TOKEN_RES_COMPUTEFMT *2)) , TDS_RETURN_PARAMFMT = (1 << (TDS_TOKEN_RES_PARAMFMT *2)) , TDS_STOPAT_PARAMFMT = (2 << (TDS_TOKEN_RES_PARAMFMT *2)) ,
  TDS_RETURN_DONE = (1 << (TDS_TOKEN_RES_DONE *2)) , TDS_STOPAT_DONE = (2 << (TDS_TOKEN_RES_DONE *2)) , TDS_RETURN_ROW = (1 << (TDS_TOKEN_RES_ROW *2)) , TDS_STOPAT_ROW = (2 << (TDS_TOKEN_RES_ROW *2)) ,
  TDS_RETURN_COMPUTE = (1 << (TDS_TOKEN_RES_COMPUTE *2)) , TDS_STOPAT_COMPUTE = (2 << (TDS_TOKEN_RES_COMPUTE *2)) , TDS_RETURN_PROC = (1 << (TDS_TOKEN_RES_PROC *2)) , TDS_STOPAT_PROC = (2 << (TDS_TOKEN_RES_PROC *2)) ,
  TDS_RETURN_MSG = (1 << (TDS_TOKEN_RES_MSG *2)) , TDS_STOPAT_MSG = (2 << (TDS_TOKEN_RES_MSG *2)) , TDS_RETURN_ENV = (1 << (TDS_TOKEN_RES_ENV *2)) , TDS_STOPAT_ENV = (2 << (TDS_TOKEN_RES_ENV *2)) ,
  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_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 , 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  TDSERRNO {
  TDSEOK = ((TDSRET)0) , TDSEVERDOWN = 100 , TDSEICONVIU = 2400 , TDSEICONVAVAIL = 2401 ,
  TDSEICONVO = 2402 , TDSEICONVI = 2403 , TDSEICONV2BIG = 2404 , TDSEPORTINSTANCE = 2500 ,
  TDSESYNC = 20001 , TDSEFCON = 20002 , TDSETIME = 20003 , TDSEREAD = 20004 ,
  TDSEWRIT = 20006 , TDSESOCK = 20008 , TDSECONN = 20009 , TDSEMEM = 20010 ,
  TDSEINTF = 20012 , TDSEUHST = 20013 , 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 , TDSECONF = 20214 ,
  TDSEBPROBADTYP = 20250 , TDSECLOSEIN = 20292 , TDSEOK = ((TDSRET)0) , TDSEVERDOWN = 100 ,
  TDSEINPROGRESS , TDSEICONVIU = 2400 , TDSEICONVAVAIL = 2401 , TDSEICONVO = 2402 ,
  TDSEICONVI = 2403 , TDSEICONV2BIG = 2404 , TDSEPORTINSTANCE = 2500 , TDSESYNC = 20001 ,
  TDSEFCON = 20002 , TDSETIME = 20003 , TDSEREAD = 20004 , TDSEWRIT = 20006 ,
  TDSESOCK = 20008 , TDSECONN = 20009 , TDSEMEM = 20010 , TDSEINTF = 20012 ,
  TDSEUHST = 20013 , 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 , TDSECONF = 20214 , TDSEBPROBADTYP = 20250 ,
  TDSECLOSEIN = 20292
}
 
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_encryption_level {
  TDS_ENCRYPTION_OFF , TDS_ENCRYPTION_REQUEST , TDS_ENCRYPTION_REQUIRE , TDS_ENCRYPTION_DEFAULT ,
  TDS_ENCRYPTION_OFF , TDS_ENCRYPTION_REQUEST , TDS_ENCRYPTION_REQUIRE
}
 
enum  {
  TDS_TYPEFLAG_INVALID = 0 , TDS_TYPEFLAG_NULLABLE = 1 , TDS_TYPEFLAG_FIXED = 2 , TDS_TYPEFLAG_VARIABLE = 4 ,
  TDS_TYPEFLAG_COLLATE = 8 , TDS_TYPEFLAG_ASCII = 16 , TDS_TYPEFLAG_UNICODE = 32 , TDS_TYPEFLAG_NUMERIC = 64 ,
  TDS_TYPEFLAG_DATETIME = 128
}
 
enum  tds_states {
  TDS_IDLE , TDS_WRITING , TDS_SENDING , TDS_PENDING ,
  TDS_READING , TDS_DEAD , TDS_IDLE , TDS_WRITING ,
  TDS_SENDING , TDS_PENDING , TDS_READING , TDS_DEAD
}
 values for tds->state More...
 
enum  tds_operations {
  TDS_OP_NONE = 0 , TDS_OP_CURSOR = TDS_SP_CURSOR , TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN , TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE ,
  TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE , TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC , TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE , TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH ,
  TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION , TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE , TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL , TDS_OP_PREPARE = TDS_SP_PREPARE ,
  TDS_OP_EXECUTE = TDS_SP_EXECUTE , TDS_OP_PREPEXEC = TDS_SP_PREPEXEC , TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC , TDS_OP_UNPREPARE = TDS_SP_UNPREPARE ,
  TDS_OP_DYN_DEALLOC = 100 , TDS_OP_NONE = 0 , TDS_OP_CURSOR = TDS_SP_CURSOR , TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN ,
  TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE , TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE , TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC , TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE ,
  TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH , TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION , TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE , TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL ,
  TDS_OP_PREPARE = TDS_SP_PREPARE , TDS_OP_EXECUTE = TDS_SP_EXECUTE , TDS_OP_PREPEXEC = TDS_SP_PREPEXEC , TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC ,
  TDS_OP_UNPREPARE = TDS_SP_UNPREPARE , TDS_OP_DYN_DEALLOC = 100
}
 
enum  TDS_CURSOR_STATE {
  TDS_CURSOR_STATE_UNACTIONED = 0 , TDS_CURSOR_STATE_REQUESTED = 1 , TDS_CURSOR_STATE_SENT = 2 , TDS_CURSOR_STATE_ACTIONED = 3 ,
  TDS_CURSOR_STATE_UNACTIONED = 0 , TDS_CURSOR_STATE_REQUESTED = 1 , TDS_CURSOR_STATE_SENT = 2 , TDS_CURSOR_STATE_ACTIONED = 3
}
 
enum  tds_cursor_operation {
  TDS_CURSOR_POSITION = 0 , TDS_CURSOR_UPDATE = 1 , TDS_CURSOR_DELETE = 2 , TDS_CURSOR_INSERT = 4 ,
  TDS_CURSOR_POSITION = 0 , TDS_CURSOR_UPDATE = 1 , TDS_CURSOR_DELETE = 2 , TDS_CURSOR_INSERT = 4
}
 
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 , 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_MULTIPLE_TYPE {
  TDS_MULTIPLE_QUERY , TDS_MULTIPLE_EXECUTE , TDS_MULTIPLE_RPC , TDS_MULTIPLE_QUERY ,
  TDS_MULTIPLE_EXECUTE , TDS_MULTIPLE_RPC
}
 
enum  TDS_ICONV_ENTRY {
  client2ucs2 , client2server_chardata , initial_char_conv_count , client2ucs2 ,
  client2server_chardata , initial_char_conv_count
}
 
enum  tds_bcp_directions {
  TDS_BCP_IN = 1 , TDS_BCP_OUT = 2 , TDS_BCP_QUERYOUT = 3 , TDS_BCP_IN = 1 ,
  TDS_BCP_OUT = 2 , TDS_BCP_QUERYOUT = 3
}
 bcp direction More...
 

Functions

static bool is_tds_type_valid (int type)
 
const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void)
 Return a structure capturing the compile-time settings provided to the configure script. More...
 
int tds_read_conf_section (FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *parse_param)
 Read a section of configuration file (INI style file) More...
 
int tds_read_conf_file (TDSLOGIN *login, const char *server)
 Read configuration info for given server return 0 on error. More...
 
void tds_parse_conf_section (const char *option, const char *value, void *param)
 
TDSLOGINtds_read_config_info (TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
 tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values More...
 
void tds_fix_login (TDSLOGIN *login)
 Fix configuration after reading it. More...
 
TDS_USMALLINTtds_config_verstr (const char *tdsver, TDSLOGIN *login)
 Set TDS version from given string. More...
 
struct addrinfotds_lookup_host (const char *servername)
 Get the IP address for a hostname. More...
 
TDSRET tds_lookup_host_set (const char *servername, struct addrinfo **addr)
 
const char * tds_addrinfo2str (struct addrinfo *addr, char *name, int namemax)
 
TDSRET tds_set_interfaces_file_loc (const char *interfloc)
 Set the full name of interface file. More...
 
int tds_parse_boolean (const char *value, int default_value)
 
int tds_config_boolean (const char *option, const char *value, TDSLOGIN *login)
 
TDSLOCALEtds_get_locale (void)
 Get locale information. More...
 
TDSRET tds_alloc_row (TDSRESULTINFO *res_info)
 Allocate space for row store return NULL on out of memory. More...
 
TDSRET tds_alloc_compute_row (TDSCOMPUTEINFO *res_info)
 
BCPCOLDATAtds_alloc_bcp_column_data (unsigned int column_size)
 
TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
 Finds a dynamic given string id. More...
 
const char * tds_prtype (int token)
 Returns string representation of the given type. More...
 
int tds_get_varint_size (TDSCONNECTION *conn, int datatype)
 tds_get_varint_size() returns the size of a variable length integer returned in a TDS 7.0 result string More...
 
TDS_SERVER_TYPE tds_get_cardinal_type (TDS_SERVER_TYPE datatype, int usertype)
 
TDSRET tds_iconv_open (TDSCONNECTION *conn, const char *charset, int use_utf16)
 
void tds_iconv_close (TDSCONNECTION *conn)
 
void tds_srv_charset_changed (TDSCONNECTION *conn, const char *charset)
 
void tds7_srv_charset_changed (TDSCONNECTION *conn, int sql_collate, int lcid)
 
int tds_iconv_alloc (TDSCONNECTION *conn)
 Allocate iconv stuff. More...
 
void tds_iconv_free (TDSCONNECTION *conn)
 
TDSICONVtds_iconv_from_collate (TDSCONNECTION *conn, TDS_UCHAR collate[5])
 Get iconv information from a LCID (to support different column encoding under MSSQL2K) More...
 
char * tds_timestamp_str (char *str, int maxlen)
 
struct tm * tds_localtime_r (const time_t *timep, struct tm *result)
 
struct hostent * tds_gethostbyname_r (const char *servername, struct hostent *result, char *buffer, int buflen, int *h_errnop)
 
int tds_getservice (const char *name)
 Return service port given the name. More...
 
char * tds_get_homedir (void)
 Get user home directory. More...
 
void tds_free_socket (TDSSOCKET *tds)
 
void tds_free_all_results (TDSSOCKET *tds)
 
void tds_free_results (TDSRESULTINFO *res_info)
 
void tds_free_param_results (TDSPARAMINFO *param_info)
 
void tds_free_param_result (TDSPARAMINFO *param_info)
 Delete latest parameter. More...
 
void tds_free_msg (TDSMESSAGE *message)
 
void tds_cursor_deallocated (TDSCONNECTION *conn, TDSCURSOR *cursor)
 
void tds_release_cursor (TDSCURSOR **pcursor)
 
void tds_free_bcp_column_data (BCPCOLDATA *coldata)
 
TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols)
 
TDSCOMPUTEINFO ** tds_alloc_compute_results (TDSSOCKET *tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)
 
TDSCONTEXTtds_alloc_context (void *parent)
 
void tds_free_context (TDSCONTEXT *locale)
 
TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param)
 Adds a output parameter to TDSPARAMINFO. More...
 
void tds_free_input_params (TDSDYNAMIC *dyn)
 Frees all allocated input parameters of a dynamic statement. More...
 
void tds_release_dynamic (TDSDYNAMIC **dyn)
 Frees dynamic statement. More...
 
static void tds_release_cur_dyn (TDSSOCKET *tds)
 
void tds_dynamic_deallocated (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
 
void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Set current dynamic. More...
 
TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, unsigned int bufsize)
 
char * tds_alloc_client_sqlstate (int msgno)
 
char * tds_alloc_lookup_sqlstate (TDSSOCKET *tds, int msgno)
 
TDSLOGINtds_alloc_login (int use_environment)
 
TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id)
 Allocate a dynamic statement. More...
 
void tds_free_login (TDSLOGIN *login)
 
TDSLOGINtds_init_login (TDSLOGIN *login, TDSLOCALE *locale)
 Initialize login structure with locale information and other stuff for connection. More...
 
TDSLOCALEtds_alloc_locale (void)
 
void * tds_alloc_param_data (TDSCOLUMN *curparam)
 Allocate data for a parameter. More...
 
void tds_free_locale (TDSLOCALE *locale)
 
TDSCURSORtds_alloc_cursor (TDSSOCKET *tds, const char *name, size_t namelen, const char *query, size_t querylen)
 
void tds_free_row (TDSRESULTINFO *res_info, unsigned char *row)
 
TDSSOCKETtds_alloc_socket (TDSCONTEXT *context, unsigned int bufsize)
 
TDSSOCKETtds_alloc_additional_socket (TDSCONNECTION *conn)
 
void tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info)
 
void tds_detach_results (TDSRESULTINFO *info)
 Detach result info from it current socket. More...
 
void * tds_realloc (void **pp, size_t new_size)
 Reallocate a pointer and update it if success. More...
 
TDSPACKETtds_alloc_packet (void *buf, unsigned len)
 
TDSPACKETtds_realloc_packet (TDSPACKET *packet, unsigned len)
 
void tds_free_packets (TDSPACKET *packet)
 
TDSBCPINFOtds_alloc_bcpinfo (void)
 
void tds_free_bcpinfo (TDSBCPINFO *bcpinfo)
 
void tds_deinit_bcpinfo (TDSBCPINFO *bcpinfo)
 
void tds_set_packet (TDSLOGIN *tds_login, int packet_size)
 
void tds_set_port (TDSLOGIN *tds_login, int port)
 
bool tds_set_passwd (TDSLOGIN *tds_login, const char *password)
 
void tds_set_bulk (TDSLOGIN *tds_login, TDS_TINYINT enabled)
 
bool tds_set_user (TDSLOGIN *tds_login, const char *username)
 
bool tds_set_app (TDSLOGIN *tds_login, const char *application)
 
bool tds_set_host (TDSLOGIN *tds_login, const char *hostname)
 
bool tds_set_library (TDSLOGIN *tds_login, const char *library)
 
bool tds_set_server (TDSLOGIN *tds_login, const char *server)
 Set the servername in a TDSLOGIN structure. More...
 
bool tds_set_client_charset (TDSLOGIN *tds_login, const char *charset)
 
bool tds_set_language (TDSLOGIN *tds_login, const char *language)
 
void tds_set_version (TDSLOGIN *tds_login, TDS_TINYINT major_ver, TDS_TINYINT minor_ver)
 
int tds_connect_and_login (TDSSOCKET *tds, TDSLOGIN *login)
 
void tds_start_query (TDSSOCKET *tds, unsigned char packet_type)
 Start query packet of a given type \tds. More...
 
TDSRET tds_submit_query (TDSSOCKET *tds, const char *query)
 Sends a language string to the database server for processing. More...
 
TDSRET tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
 Sends a language string to the database server for processing. More...
 
TDSRET tds_submit_queryf (TDSSOCKET *tds, const char *queryf,...)
 Format and submit a query \tds. More...
 
TDSRET tds_submit_prepare (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
 Creates a temporary stored procedure in the server. More...
 
TDSRET tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
 Submit a prepared query with parameters. More...
 
TDSRET tds71_submit_prepexec (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
 Creates a temporary stored procedure in the server and execute it. More...
 
TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Sends a previously prepared dynamic statement to the server. More...
 
TDSRET tds_send_cancel (TDSSOCKET *tds)
 tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this. More...
 
const char * tds_next_placeholder (const char *start)
 Get position of next placeholder. More...
 
int tds_count_placeholders (const char *query)
 Count the number of placeholders ('?') in a query. More...
 
int tds_needs_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
 Check if dynamic request must be unprepared. More...
 
TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
 Unprepare dynamic on idle. More...
 
TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
 Send a unprepare request for a prepared query. More...
 
TDSRET tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
 Calls a RPC from server. More...
 
TDSRET tds_submit_optioncmd (TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size)
 Send option commands to server. More...
 
TDSRET tds_submit_begin_tran (TDSSOCKET *tds)
 Send a rollback request. More...
 
TDSRET tds_submit_rollback (TDSSOCKET *tds, int cont)
 Send a rollback request. More...
 
TDSRET tds_submit_commit (TDSSOCKET *tds, int cont)
 Send a commit request. More...
 
TDSRET tds_disconnect (TDSSOCKET *tds)
 
size_t tds_quote_id (TDSSOCKET *tds, char *buffer, const char *id, ssize_t idlen)
 Quote an id. More...
 
size_t tds_quote_string (TDSSOCKET *tds, char *buffer, const char *str, ssize_t len)
 Quote a string. More...
 
const char * tds_skip_comment (const char *s)
 Skip a comment in a query. More...
 
const char * tds_skip_quoted (const char *s)
 Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) More...
 
size_t tds_fix_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
 Get column size for wire. More...
 
const char * tds_convert_string (TDSSOCKET *tds, TDSICONV *char_conv, const char *s, ssize_t len, size_t *out_len)
 Convert a string in an allocated buffer. More...
 
void tds_convert_string_free (const char *original, const char *converted)
 
TDSRET tds_get_column_declaration (TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
 Return declaration for column (like "varchar(20)"). More...
 
TDSRET tds_cursor_declare (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send)
 
TDSRET tds_cursor_setrows (TDSSOCKET *tds, TDSCURSOR *cursor, int *send)
 
TDSRET tds_cursor_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send)
 
TDSRET tds_cursor_fetch (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row)
 
TDSRET tds_cursor_get_cursor_info (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_UINT *row_number, TDS_UINT *row_count)
 
TDSRET tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor)
 
TDSRET tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor)
 Send a deallocation request to server. More...
 
TDSRET tds_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor)
 Deallocate cursor on idle. More...
 
TDSRET tds_cursor_update (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO *params)
 
TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor)
 
TDSRET tds_multiple_init (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type, TDSHEADERS *head)
 
TDSRET tds_multiple_done (TDSSOCKET *tds, TDSMULTIPLE *multiple)
 
TDSRET tds_multiple_query (TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO *params)
 
TDSRET tds_multiple_execute (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC *dyn)
 
TDSRET tds_process_cancel (TDSSOCKET *tds)
 
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 More...
 
TDSRET tds_process_login_tokens (TDSSOCKET *tds)
 tds_process_login_tokens() is called after sending the login packet to the server. More...
 
TDSRET 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. More...
 
int tds5_send_optioncmd (TDSSOCKET *tds, TDS_OPTION_CMD tds_command, TDS_OPTION tds_option, TDS_OPTION_ARG *tds_argument, TDS_INT *tds_argsize)
 
TDSRET tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
 process all streams. More...
 
int determine_adjusted_size (const TDSICONV *char_conv, int size)
 Allow for maximum possible size of converted data, while being careful about integer division truncation. More...
 
void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
 Set type of column initializing all dependency. More...
 
void tds_set_column_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
 Set type of column initializing all dependency. More...
 
TDSRET tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr)
 Convert from db date format to a structured date format. More...
 
TDS_SERVER_TYPE tds_get_conversion_type (TDS_SERVER_TYPE srctype, int colsize)
 Return type suitable for conversions (convert all nullable types to fixed type) More...
 
int tds_init_write_buf (TDSSOCKET *tds)
 
int tds_put_n (TDSSOCKET *tds, const void *buf, size_t n)
 
int tds_put_string (TDSSOCKET *tds, const char *buf, int len)
 Output a string to wire automatic translate string to unicode if needed. More...
 
int tds_put_int (TDSSOCKET *tds, TDS_INT i)
 
int tds_put_int8 (TDSSOCKET *tds, TDS_INT8 i)
 
int tds_put_smallint (TDSSOCKET *tds, TDS_SMALLINT si)
 
int tds_put_byte (TDSSOCKET *tds, unsigned char c)
 
TDSRET tds_flush_packet (TDSSOCKET *tds)
 Flush packet to server. More...
 
int tds_put_buf (TDSSOCKET *tds, const unsigned char *buf, int dsize, int ssize)
 
unsigned char tds_get_byte (TDSSOCKET *tds)
 Return a single byte from the input buffer \tds. More...
 
void tds_unget_byte (TDSSOCKET *tds)
 Unget will always work as long as you don't call it twice in a row. More...
 
unsigned char tds_peek (TDSSOCKET *tds)
 Reads a byte from the TDS stream without removing it \tds. More...
 
TDS_USMALLINT tds_get_usmallint (TDSSOCKET *tds)
 Get an int16 from the server. More...
 
TDS_UINT tds_get_uint (TDSSOCKET *tds)
 Get an int32 from the server. More...
 
TDS_UINT8 tds_get_uint8 (TDSSOCKET *tds)
 Get an uint64 from the server. More...
 
size_t tds_get_string (TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
 Fetch a string from the wire. More...
 
TDSRET tds_get_char_data (TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
 Fetch character data the wire. More...
 
void * tds_get_n (TDSSOCKET *tds, void *dest, size_t n)
 Get N bytes from the buffer and return them in the already allocated space given to us. More...
 
int tds_get_size_by_type (TDS_SERVER_TYPE servertype)
 Return the number of bytes needed by specified type. More...
 
DSTRtds_dstr_get (TDSSOCKET *tds, DSTR *s, size_t len)
 Reads a string from wire and put in a DSTR. More...
 
int tdserror (const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
 Call the client library's error handler (for library-generated errors only) More...
 
TDS_STATE tds_set_state (TDSSOCKET *tds, TDS_STATE state)
 Set state of TDS connection, with logging and checking. More...
 
void tds_swap_bytes (void *buf, int bytes)
 
char * tds_strndup (const void *s, TDS_INTPTR len)
 Copy a string of length len to a new allocated buffer This function does not read more than len bytes Please note that some system implementation of strndup do not assure they don't read past len bytes as they use still strlen to check length to copy limiting after strlen to size passed Also this function is different from strndup as it assume that len bytes are valid String returned is NUL terminated. More...
 
void tdsdump_off (void)
 Temporarily turn off logging. More...
 
void tdsdump_on (void)
 Turn logging back on. More...
 
int tdsdump_state (void)
 Get the logging state. More...
 
int tdsdump_isopen (void)
 
int tdsdump_open (const char *filename)
 Create and truncate a human readable dump file for the TDS traffic. More...
 
void tdsdump_close (void)
 Close the TDS dump log file. More...
 
void tdsdump_do_dump_buf (const char *file, unsigned int level_line, const char *msg, const void *buf, size_t length)
 Dump the contents of data into the log file in a human readable format. More...
 
void tdsdump_col (const TDSCOLUMN *col)
 Write a column value to the debug log. More...
 
void tdsdump_do_log (const char *file, unsigned int level_line, const char *fmt,...)
 Write a message to the debug log. More...
 
TDSERRNO tds_open_socket (TDSSOCKET *tds, struct addrinfo *ipaddr, unsigned int port, int timeout, int *p_oserr)
 
void tds_close_socket (TDSSOCKET *tds)
 Close current socket. More...
 
int tds7_get_instance_ports (FILE *output, struct addrinfo *addr)
 Get port of all instances. More...
 
int tds7_get_instance_port (struct addrinfo *addr, const char *instance)
 Get port of given instance. More...
 
char * tds_prwsaerror (int erc)
 
void tds_prwsaerror_free (char *s)
 
ssize_t tds_connection_read (TDSSOCKET *tds, unsigned char *buf, size_t buflen)
 
ssize_t tds_connection_write (TDSSOCKET *tds, const unsigned char *buf, size_t buflen, int final)
 
int tds_select (TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
 Select on a socket until it's available or the timeout expires. More...
 
void tds_connection_close (TDSCONNECTION *conn)
 
ssize_t tds_goodread (TDSSOCKET *tds, unsigned char *buf, size_t buflen)
 Loops until we have received some characters return -1 on failure. More...
 
ssize_t tds_goodwrite (TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
 
void tds_socket_flush (TDS_SYS_SOCKET sock)
 
int tds_socket_set_nonblocking (TDS_SYS_SOCKET sock)
 Set socket to non-blocking. More...
 
int tds_wakeup_init (TDSPOLLWAKEUP *wakeup)
 
void tds_wakeup_close (TDSPOLLWAKEUP *wakeup)
 
void tds_wakeup_send (TDSPOLLWAKEUP *wakeup, char cancel)
 
static TDS_SYS_SOCKET tds_wakeup_get_fd (const TDSPOLLWAKEUP *wakeup)
 
int tds_read_packet (TDSSOCKET *tds)
 Read in one 'packet' from the server. More...
 
TDSRET tds_write_packet (TDSSOCKET *tds, unsigned char final)
 
int tds_put_cancel (TDSSOCKET *tds)
 
TDSRET tds_vstrbuild (char *buffer, int buflen, int *resultlen, const char *text, int textlen, const char *formats, int formatlen, va_list ap)
 
char * tds_money_to_string (const TDS_MONEY *money, char *s)
 
TDS_INT tds_numeric_to_string (const TDS_NUMERIC *numeric, char *s)
 
TDS_INT tds_numeric_change_prec_scale (TDS_NUMERIC *numeric, unsigned char new_prec, unsigned char new_scale)
 
void tds_getmac (TDS_SYS_SOCKET s, unsigned char mac[6])
 
TDSAUTHENTICATIONtds_ntlm_get_auth (TDSSOCKET *tds)
 Build a NTLMSPP packet to send to server. More...
 
TDSAUTHENTICATIONtds_gss_get_auth (TDSSOCKET *tds)
 
void tds_random_buffer (unsigned char *out, int len)
 
TDSAUTHENTICATIONtds5_negotiate_get_auth (TDSSOCKET *tds)
 
void tds5_negotiate_set_msg_type (TDSSOCKET *tds, TDSAUTHENTICATION *auth, unsigned msg_type)
 
TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Initialize BCP information. More...
 
TDSRET tds_bcp_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
 Send one row of data to server \tds. More...
 
TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
 Tell we finished sending BCP data to server \tds. More...
 
TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start sending BCP data to server. More...
 
TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
 Start bulk copy to server \tds. More...
 
TDSRET tds_bcp_fread (TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes)
 Read a data file, passing the data through iconv(). More...
 
TDSRET tds_writetext_start (TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size)
 Start writing writetext request. More...
 
TDSRET tds_writetext_continue (TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size)
 Send some data in the writetext request started by tds_writetext_start. More...
 
TDSRET tds_writetext_end (TDSSOCKET *tds)
 Finish sending writetext data. More...
 
static bool tds_capability_enabled (const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
 

Variables

const int tds_numeric_bytes_per_prec []
 The following little table is indexed by precision and will tell us the number of bytes required to store the specified precision. More...
 
const unsigned char tds_type_flags_ms [256]
 
const char STD_DATETIME_FMT []
 
const char tds_hex_digits []
 
int tds_write_dump
 Tell if TDS debug logging is turned on or off. More...
 
int tds_debug_flags
 
int tds_g_append_mode
 
int tdsdump_elided
 

Detailed Description

Main include file for libtds.

Definition in file tds.h.

Macro Definition Documentation

◆ is_ascii_type

#define is_ascii_type (   x)    ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)

Definition at line 459 of file tds.h.

◆ is_blob_col

#define is_blob_col (   x)
Value:
(is_blob_type((x)->column_type) \
|| ((x)->column_varint_size == 8) \
|| ((x)->column_type == SYBVARIANT \
&& (x)->column_varint_size == 4))
@ SYBVARIANT
Definition: proto.h:200
#define is_blob_type(x)
Definition: tds.h:443

Definition at line 445 of file tds.h.

◆ is_blob_type

#define is_blob_type (   x)    ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)

Definition at line 443 of file tds.h.

◆ is_char_type

#define is_char_type (   x)    ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)

Definition at line 460 of file tds.h.

◆ is_collate_type

#define is_collate_type (   x)    ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)

Definition at line 458 of file tds.h.

◆ is_datetime_type

#define is_datetime_type (   x)    ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)

return true if type is a datetime (but not date or time)

Definition at line 456 of file tds.h.

◆ is_end_token

#define is_end_token (   x)
Value:
(x==TDS_DONE_TOKEN || \
#define TDS_DONEINPROC_TOKEN
Definition: proto.h:115
#define TDS_DONE_TOKEN
Definition: proto.h:113
#define TDS_DONEPROC_TOKEN
Definition: proto.h:114

Definition at line 416 of file tds.h.

◆ is_fixed_type

#define is_fixed_type (   x)    ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)

Definition at line 438 of file tds.h.

◆ is_nullable_type

#define is_nullable_type (   x)    ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)

Definition at line 439 of file tds.h.

◆ is_numeric_type

#define is_numeric_type (   x)    ((x)==SYBNUMERIC || (x)==SYBDECIMAL)

Definition at line 454 of file tds.h.

◆ is_similar_type

#define is_similar_type (   x,
 
)    (is_char_type(x) && is_char_type(y))

Definition at line 461 of file tds.h.

◆ IS_TDS42

#define IS_TDS42 (   x)    (x->tds_version==0x402)

Definition at line 1699 of file tds.h.

◆ IS_TDS46

#define IS_TDS46 (   x)    (x->tds_version==0x406)

Definition at line 1700 of file tds.h.

◆ IS_TDS50

#define IS_TDS50 (   x)    (x->tds_version==0x500)

Definition at line 1701 of file tds.h.

◆ IS_TDS50_PLUS

#define IS_TDS50_PLUS (   x)    ((x)->tds_version>=0x500)

Definition at line 1707 of file tds.h.

◆ IS_TDS70

#define IS_TDS70 (   x)    (x->tds_version==0x700)

Definition at line 1702 of file tds.h.

◆ IS_TDS71

#define IS_TDS71 (   x)    (x->tds_version==0x701)

Definition at line 1703 of file tds.h.

◆ IS_TDS71_PLUS

#define IS_TDS71_PLUS (   x)    ((x)->tds_version>=0x701)

Definition at line 1709 of file tds.h.

◆ IS_TDS72

#define IS_TDS72 (   x)    (x->tds_version==0x702)

Definition at line 1704 of file tds.h.

◆ IS_TDS72_PLUS

#define IS_TDS72_PLUS (   x)    ((x)->tds_version>=0x702)

Definition at line 1710 of file tds.h.

◆ IS_TDS73

#define IS_TDS73 (   x)    (x->tds_version==0x703)

Definition at line 1705 of file tds.h.

◆ IS_TDS73_PLUS

#define IS_TDS73_PLUS (   x)    ((x)->tds_version>=0x703)

Definition at line 1711 of file tds.h.

◆ IS_TDS74_PLUS

#define IS_TDS74_PLUS (   x)    ((x)->tds_version>=0x704)

Definition at line 1712 of file tds.h.

◆ IS_TDS7_PLUS

#define IS_TDS7_PLUS (   x)    ((x)->tds_version>=0x700)

Definition at line 1708 of file tds.h.

◆ IS_TDSDEAD

#define IS_TDSDEAD (   x)    (((x) == NULL) || (x)->state == TDS_DEAD)

Definition at line 1717 of file tds.h.

◆ is_unicode_type

#define is_unicode_type (   x)    ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != 0)

Definition at line 457 of file tds.h.

◆ is_variable_type

#define is_variable_type (   x)    ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) != 0)

Definition at line 440 of file tds.h.

◆ MAXPRECISION

#define MAXPRECISION   77

Definition at line 470 of file tds.h.

◆ TDS_ALIGN_SIZE

#define TDS_ALIGN_SIZE   sizeof(tds_align_struct)

Definition at line 568 of file tds.h.

◆ TDS_BYTE_SWAP16

#define TDS_BYTE_SWAP16 (   value)
Value:
(((((unsigned short)value)<<8) & 0xFF00) | \
((((unsigned short)value)>>8) & 0x00FF))
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1227

Definition at line 406 of file tds.h.

◆ TDS_BYTE_SWAP32

#define TDS_BYTE_SWAP32 (   value)
Value:
(((((unsigned long)value)<<24) & 0xFF000000) | \
((((unsigned long)value)<< 8) & 0x00FF0000) | \
((((unsigned long)value)>> 8) & 0x0000FF00) | \
((((unsigned long)value)>>24) & 0x000000FF))

Definition at line 410 of file tds.h.

◆ TDS_CANCELLED

#define TDS_CANCELLED   ((TDSRET)-2)

Definition at line 205 of file tds.h.

◆ tds_capability_has_req

#define tds_capability_has_req (   conn,
  cap 
)     tds_capability_enabled(&conn->capabilities.types[0], cap)

Definition at line 1696 of file tds.h.

◆ TDS_CMD_DONE

#define TDS_CMD_DONE   4046

Definition at line 221 of file tds.h.

◆ TDS_CMD_FAIL

#define TDS_CMD_FAIL   4048

Definition at line 223 of file tds.h.

◆ TDS_CMD_SUCCEED

#define TDS_CMD_SUCCEED   4047

Definition at line 222 of file tds.h.

◆ TDS_COMPILE_CHECK

#define TDS_COMPILE_CHECK (   name,
  check 
)     extern int disabled_check_##name

Definition at line 390 of file tds.h.

◆ TDS_COMPUTE_RESULT

#define TDS_COMPUTE_RESULT   4045

Definition at line 220 of file tds.h.

◆ TDS_COMPUTEFMT_RESULT

#define TDS_COMPUTEFMT_RESULT   4050

Definition at line 225 of file tds.h.

◆ tds_convert_string_free

#define tds_convert_string_free (   original,
  converted 
)     do { if (original != converted) free((char*) converted); } while(0)

Definition at line 1452 of file tds.h.

◆ TDS_DBG_ERROR

#define TDS_DBG_ERROR   __FILE__, ((__LINE__ << 4) | 2)

Definition at line 903 of file tds.h.

◆ TDS_DBG_FUNC

#define TDS_DBG_FUNC   __FILE__, ((__LINE__ << 4) | 7)

Definition at line 898 of file tds.h.

◆ TDS_DBG_HEADER

#define TDS_DBG_HEADER   __FILE__, ((__LINE__ << 4) | 10)

Definition at line 897 of file tds.h.

◆ TDS_DBG_INFO1

#define TDS_DBG_INFO1   __FILE__, ((__LINE__ << 4) | 5)

Definition at line 900 of file tds.h.

◆ TDS_DBG_INFO2

#define TDS_DBG_INFO2   __FILE__, ((__LINE__ << 4) | 6)

Definition at line 899 of file tds.h.

◆ TDS_DBG_LOGIN

#define TDS_DBG_LOGIN   __FILE__, ((__LINE__ << 4) | 11)

Definition at line 896 of file tds.h.

◆ TDS_DBG_NETWORK

#define TDS_DBG_NETWORK   __FILE__, ((__LINE__ << 4) | 4)

Definition at line 901 of file tds.h.

◆ TDS_DBG_SEVERE

#define TDS_DBG_SEVERE   __FILE__, ((__LINE__ << 4) | 1)

Definition at line 904 of file tds.h.

◆ TDS_DBG_WARN

#define TDS_DBG_WARN   __FILE__, ((__LINE__ << 4) | 3)

Definition at line 902 of file tds.h.

◆ TDS_DBGFLAG_ALL

#define TDS_DBGFLAG_ALL   0xfff

Definition at line 913 of file tds.h.

◆ TDS_DBGFLAG_ERROR

#define TDS_DBGFLAG_ERROR   0x04

Definition at line 911 of file tds.h.

◆ TDS_DBGFLAG_FUNC

#define TDS_DBGFLAG_FUNC   0x80

Definition at line 906 of file tds.h.

◆ TDS_DBGFLAG_HEADER

#define TDS_DBGFLAG_HEADER   0x0400

Definition at line 915 of file tds.h.

◆ TDS_DBGFLAG_INFO1

#define TDS_DBGFLAG_INFO1   0x20

Definition at line 908 of file tds.h.

◆ TDS_DBGFLAG_INFO2

#define TDS_DBGFLAG_INFO2   0x40

Definition at line 907 of file tds.h.

◆ TDS_DBGFLAG_LOGIN

#define TDS_DBGFLAG_LOGIN   0x0800

Definition at line 914 of file tds.h.

◆ TDS_DBGFLAG_NETWORK

#define TDS_DBGFLAG_NETWORK   0x10

Definition at line 909 of file tds.h.

◆ TDS_DBGFLAG_PID

#define TDS_DBGFLAG_PID   0x1000

Definition at line 916 of file tds.h.

◆ TDS_DBGFLAG_SEVERE

#define TDS_DBGFLAG_SEVERE   0x02

Definition at line 912 of file tds.h.

◆ TDS_DBGFLAG_SOURCE

#define TDS_DBGFLAG_SOURCE   0x4000

Definition at line 918 of file tds.h.

◆ TDS_DBGFLAG_THREAD

#define TDS_DBGFLAG_THREAD   0x8000

Definition at line 919 of file tds.h.

◆ TDS_DBGFLAG_TIME

#define TDS_DBGFLAG_TIME   0x2000

Definition at line 917 of file tds.h.

◆ TDS_DBGFLAG_WARN

#define TDS_DBGFLAG_WARN   0x08

Definition at line 910 of file tds.h.

◆ TDS_DEF_BLKSZ

#define TDS_DEF_BLKSZ   512

Definition at line 476 of file tds.h.

◆ TDS_DEF_CHARSET

#define TDS_DEF_CHARSET   "iso_1"

Definition at line 477 of file tds.h.

◆ TDS_DEF_LANG

#define TDS_DEF_LANG   "us_english"

Definition at line 478 of file tds.h.

◆ TDS_DEF_PORT

#define TDS_DEF_PORT   1433

Definition at line 505 of file tds.h.

◆ TDS_DEF_SERVER

#define TDS_DEF_SERVER   "SYBASE"

Definition at line 475 of file tds.h.

◆ TDS_DEFAULT_VERSION

#define TDS_DEFAULT_VERSION   0x000

Definition at line 504 of file tds.h.

◆ TDS_DESCRIBE_RESULT

#define TDS_DESCRIBE_RESULT   4051

Definition at line 226 of file tds.h.

◆ TDS_DONE_RESULT

#define TDS_DONE_RESULT   4052

Definition at line 227 of file tds.h.

◆ TDS_DONEINPROC_RESULT

#define TDS_DONEINPROC_RESULT   4054

Definition at line 229 of file tds.h.

◆ TDS_DONEPROC_RESULT

#define TDS_DONEPROC_RESULT   4053

Definition at line 228 of file tds.h.

◆ TDS_EXTRA_CHECK

#define TDS_EXTRA_CHECK (   stmt)

Definition at line 392 of file tds.h.

◆ TDS_FAIL

#define TDS_FAIL   ((TDSRET)-1)

Definition at line 204 of file tds.h.

◆ TDS_FAILED

#define TDS_FAILED (   rc)    ((rc)<0)

Definition at line 206 of file tds.h.

◆ tds_get_ctx

#define tds_get_ctx (   tds)    ((tds)->conn->tds_ctx)

Definition at line 1294 of file tds.h.

◆ tds_get_int

#define tds_get_int (   tds)    ((TDS_INT) tds_get_uint(tds))

Definition at line 1517 of file tds.h.

◆ tds_get_int8

#define tds_get_int8 (   tds)    ((TDS_INT8) tds_get_uint8(tds))

Definition at line 1519 of file tds.h.

◆ tds_get_parent

#define tds_get_parent (   tds)    ((tds)->parent)

Definition at line 1296 of file tds.h.

◆ tds_get_s

#define tds_get_s (   tds)    ((tds)->conn->s)

Definition at line 1298 of file tds.h.

◆ tds_get_smallint

#define tds_get_smallint (   tds)    ((TDS_SMALLINT) tds_get_usmallint(tds))

Definition at line 1515 of file tds.h.

◆ TDS_GSSAPI_DELEGATION

#define TDS_GSSAPI_DELEGATION   "enable gssapi delegation"

Definition at line 541 of file tds.h.

◆ TDS_INT_CANCEL

#define TDS_INT_CANCEL   2

Definition at line 210 of file tds.h.

◆ TDS_INT_CONTINUE

#define TDS_INT_CONTINUE   1

Definition at line 209 of file tds.h.

◆ TDS_INT_TIMEOUT

#define TDS_INT_TIMEOUT   3

Definition at line 211 of file tds.h.

◆ TDS_INVALID_TYPE

#define TDS_INVALID_TYPE   ((TDS_SERVER_TYPE) 0)

Definition at line 160 of file tds.h.

◆ TDS_IS_MSSQL

#define TDS_IS_MSSQL (   x)    (((x)->conn->product_version & 0x80000000u)!=0)

Check if product is Microsft SQL Server.

x should be a TDSSOCKET*.

Definition at line 1722 of file tds.h.

◆ TDS_IS_SYBASE

#define TDS_IS_SYBASE (   x)    (!((x)->conn->product_version & 0x80000000u))

Check if product is Sybase (such as Adaptive Server Enterrprice).

x should be a TDSSOCKET*.

Definition at line 1720 of file tds.h.

◆ TDS_LIKELY

#define TDS_LIKELY (   x)    (x)

Definition at line 371 of file tds.h.

◆ TDS_MAJOR

#define TDS_MAJOR (   x)    ((x)->tds_version >> 8)

Definition at line 1714 of file tds.h.

◆ TDS_MAX_CAPABILITY

#define TDS_MAX_CAPABILITY   32

Definition at line 469 of file tds.h.

◆ TDS_MAX_CONN

#define TDS_MAX_CONN   4096

Definition at line 471 of file tds.h.

◆ TDS_MAX_DYNID_LEN

#define TDS_MAX_DYNID_LEN   30

Definition at line 472 of file tds.h.

◆ TDS_MAX_LOGIN_STR_SZ

#define TDS_MAX_LOGIN_STR_SZ   128

Definition at line 582 of file tds.h.

◆ TDS_MINOR

#define TDS_MINOR (   x)    ((x)->tds_version & 0xff)

Definition at line 1715 of file tds.h.

◆ TDS_MS_VER

#define TDS_MS_VER (   maj,
  min,
 
)    (0x80000000u|((maj)<<24)|((min)<<16)|(x))

Calc a version number for mssql.

Use with TDS_MS_VER(7,0,842). For test for a range of version you can use check like if (tds->product_version >= TDS_MS_VER(7,0,0) && tds->product_version < TDS_MS_VER(8,0,0))

Definition at line 1727 of file tds.h.

◆ TDS_MSG_RESULT

#define TDS_MSG_RESULT   4044

Definition at line 219 of file tds.h.

◆ tds_new

#define tds_new (   type,
  n 
)    ((type *) malloc(sizeof(type) * (n)))

Definition at line 1392 of file tds.h.

◆ tds_new0

#define tds_new0 (   type,
  n 
)    ((type *) calloc(n, sizeof(type)))

Definition at line 1393 of file tds.h.

◆ TDS_NO_COUNT

#define TDS_NO_COUNT   -1

Definition at line 214 of file tds.h.

◆ TDS_NO_MORE_RESULTS

#define TDS_NO_MORE_RESULTS   ((TDSRET)1)

Definition at line 202 of file tds.h.

◆ TDS_NULLTERM

#define TDS_NULLTERM   -9

Definition at line 344 of file tds.h.

◆ TDS_OFFSET

#define TDS_OFFSET (   str,
  field 
)    (((char*)&((str*)0)->field)-((char*)0))

Definition at line 364 of file tds.h.

◆ TDS_OTHERS_RESULT

#define TDS_OTHERS_RESULT   4055

Definition at line 230 of file tds.h.

◆ TDS_PARAM_RESULT

#define TDS_PARAM_RESULT   4042

Definition at line 217 of file tds.h.

◆ TDS_PUT_BYTE

#define TDS_PUT_BYTE (   tds,
 
)    tds_put_byte((tds), ((unsigned char)(v)))

Definition at line 1744 of file tds.h.

◆ TDS_PUT_INT

#define TDS_PUT_INT (   tds,
 
)    tds_put_int((tds), ((TDS_INT)(v)))

Definition at line 1742 of file tds.h.

◆ TDS_PUT_SMALLINT

#define TDS_PUT_SMALLINT (   tds,
 
)    tds_put_smallint((tds), ((TDS_SMALLINT)(v)))

Definition at line 1743 of file tds.h.

◆ tds_put_tinyint

#define tds_put_tinyint (   tds,
  ti 
)    tds_put_byte(tds,ti)

Output a tinyint value.

Definition at line 1504 of file tds.h.

◆ TDS_RESIZE

#define TDS_RESIZE (   p,
  n_elem 
)     tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))

Definition at line 1390 of file tds.h.

◆ TDS_ROW_RESULT

#define TDS_ROW_RESULT   4040

Definition at line 216 of file tds.h.

◆ TDS_ROWFMT_RESULT

#define TDS_ROWFMT_RESULT   4049

Definition at line 224 of file tds.h.

◆ tds_set_ctx

#define tds_set_ctx (   tds,
  val 
)    do { ((tds)->conn->tds_ctx) = (val); } while(0)

Definition at line 1295 of file tds.h.

◆ tds_set_parent

#define tds_set_parent (   tds,
  val 
)    do { ((tds)->parent) = (val); } while(0)

Definition at line 1297 of file tds.h.

◆ tds_set_s

#define tds_set_s (   tds,
  val 
)    do { ((tds)->conn->s) = (val); } while(0)

Definition at line 1299 of file tds.h.

◆ TDS_STATUS_RESULT

#define TDS_STATUS_RESULT   4043

Definition at line 218 of file tds.h.

◆ TDS_STR_APPENDMODE

#define TDS_STR_APPENDMODE   "dump file append"

Definition at line 528 of file tds.h.

◆ TDS_STR_ASA_DATABASE

#define TDS_STR_ASA_DATABASE   "asa database"

Definition at line 531 of file tds.h.

◆ TDS_STR_BLKSZ

#define TDS_STR_BLKSZ   "initial block size"

Definition at line 510 of file tds.h.

◆ TDS_STR_CAFILE

#define TDS_STR_CAFILE   "ca file"

Definition at line 547 of file tds.h.

◆ TDS_STR_CHARSET

#define TDS_STR_CHARSET   "charset"

Definition at line 524 of file tds.h.

◆ TDS_STR_CHECKSSLHOSTNAME

#define TDS_STR_CHECKSSLHOSTNAME   "check certificate hostname"

Definition at line 551 of file tds.h.

◆ TDS_STR_CLCHARSET

#define TDS_STR_CLCHARSET   "client charset"

Definition at line 525 of file tds.h.

◆ TDS_STR_CONNTIMEOUT

#define TDS_STR_CONNTIMEOUT   "connect timeout"

Definition at line 517 of file tds.h.

◆ TDS_STR_CRLFILE

#define TDS_STR_CRLFILE   "crl file"

Definition at line 549 of file tds.h.

◆ TDS_STR_DATABASE

#define TDS_STR_DATABASE   "database"

Definition at line 532 of file tds.h.

◆ TDS_STR_DATEFMT

#define TDS_STR_DATEFMT   "date format"

Definition at line 529 of file tds.h.

◆ TDS_STR_DBFILENAME

#define TDS_STR_DBFILENAME   "database filename"

Definition at line 553 of file tds.h.

◆ TDS_STR_DEBUGFLAGS

#define TDS_STR_DEBUGFLAGS   "debug flags"

Definition at line 514 of file tds.h.

◆ TDS_STR_DEBUGLVL

#define TDS_STR_DEBUGLVL   "debug level"

Definition at line 513 of file tds.h.

◆ TDS_STR_DUMPFILE

#define TDS_STR_DUMPFILE   "dump file"

Definition at line 512 of file tds.h.

◆ TDS_STR_EMUL_LE

#define TDS_STR_EMUL_LE   "emulate little endian"

Definition at line 523 of file tds.h.

◆ TDS_STR_ENCRYPTION

#define TDS_STR_ENCRYPTION   "encryption"

Definition at line 533 of file tds.h.

◆ TDS_STR_ENCRYPTION_OFF

#define TDS_STR_ENCRYPTION_OFF   "off"

Definition at line 537 of file tds.h.

◆ TDS_STR_ENCRYPTION_REQUEST

#define TDS_STR_ENCRYPTION_REQUEST   "request"

Definition at line 538 of file tds.h.

◆ TDS_STR_ENCRYPTION_REQUIRE

#define TDS_STR_ENCRYPTION_REQUIRE   "require"

Definition at line 539 of file tds.h.

◆ TDS_STR_HOST

#define TDS_STR_HOST   "host"

Definition at line 519 of file tds.h.

◆ TDS_STR_HOSTNAME

#define TDS_STR_HOSTNAME   "hostname"

Definition at line 518 of file tds.h.

◆ TDS_STR_INSTANCE

#define TDS_STR_INSTANCE   "instance"

Definition at line 530 of file tds.h.

◆ TDS_STR_LANGUAGE

#define TDS_STR_LANGUAGE   "language"

Definition at line 527 of file tds.h.

◆ TDS_STR_PORT

#define TDS_STR_PORT   "port"

Definition at line 520 of file tds.h.

◆ TDS_STR_QUERY_TIMEOUT

#define TDS_STR_QUERY_TIMEOUT   "query timeout"

Definition at line 516 of file tds.h.

◆ TDS_STR_READONLY_INTENT

#define TDS_STR_READONLY_INTENT   "read-only intent"

Definition at line 555 of file tds.h.

◆ TDS_STR_REALM

#define TDS_STR_REALM   "realm"

Definition at line 543 of file tds.h.

◆ TDS_STR_SPN

#define TDS_STR_SPN   "spn"

Definition at line 545 of file tds.h.

◆ TDS_STR_SWAPDT

#define TDS_STR_SWAPDT   "swap broken dates"

Definition at line 511 of file tds.h.

◆ TDS_STR_TEXTSZ

#define TDS_STR_TEXTSZ   "text size"

Definition at line 521 of file tds.h.

◆ TDS_STR_TIMEOUT

#define TDS_STR_TIMEOUT   "timeout"

Definition at line 515 of file tds.h.

◆ TDS_STR_USE_UTF_16

#define TDS_STR_USE_UTF_16   "use utf-16"

Definition at line 526 of file tds.h.

◆ TDS_STR_USELANMAN

#define TDS_STR_USELANMAN   "use lanman"

Definition at line 535 of file tds.h.

◆ TDS_STR_USENTLMV2

#define TDS_STR_USENTLMV2   "use ntlmv2"

Definition at line 534 of file tds.h.

◆ TDS_STR_VERSION

#define TDS_STR_VERSION   "tds version"

Definition at line 509 of file tds.h.

◆ TDS_SUCCEED

#define TDS_SUCCEED (   rc)    ((rc)>=0)

Definition at line 207 of file tds.h.

◆ TDS_SUCCESS

#define TDS_SUCCESS   ((TDSRET)0)

Definition at line 203 of file tds.h.

◆ TDS_SYB_VER

#define TDS_SYB_VER (   maj,
  min,
 
)    (((maj)<<24)|((min)<<16)|(x)<<8)

Calc a version number for Sybase.

Definition at line 1731 of file tds.h.

◆ TDS_TOKEN_FLAG

#define TDS_TOKEN_FLAG (   flag)    TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2))

Definition at line 246 of file tds.h.

◆ TDS_UNLIKELY

#define TDS_UNLIKELY (   x)    (x)

Definition at line 372 of file tds.h.

◆ TDS_VECTOR_SIZE

#define TDS_VECTOR_SIZE (   x)    (sizeof(x)/sizeof(x[0]))

Definition at line 360 of file tds.h.

◆ TDS_WUR

#define TDS_WUR

Definition at line 398 of file tds.h.

◆ TDS_ZERO_FREE

#define TDS_ZERO_FREE (   x)    do {free((x)); (x) = NULL;} while(0)

Definition at line 359 of file tds.h.

◆ TDSDUMP_BUF_FAST

#define TDSDUMP_BUF_FAST    if (TDS_UNLIKELY(tds_write_dump && !tdsdump_elided)) tdsdump_do_dump_buf

Definition at line 1562 of file tds.h.

◆ tdsdump_dump_buf

#define tdsdump_dump_buf   TDSDUMP_BUF_FAST

Definition at line 1564 of file tds.h.

◆ tdsdump_log

#define tdsdump_log   TDSDUMP_LOG_FAST

Definition at line 1561 of file tds.h.

◆ TDSDUMP_LOG_FAST

#define TDSDUMP_LOG_FAST    if (TDS_UNLIKELY(tds_write_dump && !tdsdump_elided)) tdsdump_do_log

Definition at line 1559 of file tds.h.

◆ TDSSELREAD

#define TDSSELREAD   POLLIN

Definition at line 1587 of file tds.h.

◆ TDSSELWRITE

#define TDSSELWRITE   POLLOUT

Definition at line 1588 of file tds.h.

◆ TLS_STR_OPENSSL_CIPHERS

#define TLS_STR_OPENSSL_CIPHERS   "openssl ciphers"

Definition at line 557 of file tds.h.

Typedef Documentation

◆ BCPCOLDATA

typedef struct tds_bcpcoldata BCPCOLDATA

Definition at line 1 of file tds.h.

◆ DSTR

typedef struct tds_dstr* DSTR

Definition at line 61 of file tds.h.

◆ err_handler_t

typedef int(* err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *)

Definition at line 1095 of file tds.h.

◆ tds_bcp_get_col_data

typedef TDSRET(* tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset)

Definition at line 1676 of file tds.h.

◆ tds_bcp_null_error

typedef void(* tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset)

Definition at line 1677 of file tds.h.

◆ TDS_CAPABILITIES

Definition at line 1 of file tds.h.

◆ TDS_CAPABILITY_TYPE

Definition at line 1 of file tds.h.

◆ TDS_CHAR

typedef char TDS_CHAR

Definition at line 144 of file tds.h.

◆ TDS_COMPILETIME_SETTINGS

A structure to hold all the compile-time settings.

This structure is returned by tds_get_compiletime_settings

◆ TDS_CURSOR_FETCH

◆ TDS_CURSOR_OPERATION

◆ TDS_CURSOR_STATUS

Definition at line 1 of file tds.h.

◆ TDS_ENCODING

typedef struct tds_encoding TDS_ENCODING

Information relevant to libiconv.

The name is an iconv name, not the same as found in master..syslanguages.

◆ TDS_ENCRYPTION_LEVEL

◆ TDS_FLOAT

Definition at line 152 of file tds.h.

◆ tds_func_check

typedef int tds_func_check(const TDSCOLUMN *col)

Definition at line 706 of file tds.h.

◆ tds_func_get_data

typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col)

Definition at line 701 of file tds.h.

◆ tds_func_get_info

typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col)

Definition at line 700 of file tds.h.

◆ tds_func_put_data

typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)

Definition at line 705 of file tds.h.

◆ tds_func_put_info

typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col)

Definition at line 704 of file tds.h.

◆ tds_func_put_info_len

typedef unsigned tds_func_put_info_len(TDSSOCKET *tds, TDSCOLUMN *col)

Definition at line 703 of file tds.h.

◆ tds_func_row_len

typedef TDS_INT tds_func_row_len(TDSCOLUMN *col)

Definition at line 702 of file tds.h.

◆ TDS_INT

Definition at line 149 of file tds.h.

◆ TDS_INT8

Definition at line 153 of file tds.h.

◆ TDS_INTPTR

Definition at line 155 of file tds.h.

◆ TDS_OPERATION

◆ TDS_OPTION_ARG

◆ TDS_REAL

Definition at line 151 of file tds.h.

◆ TDS_SMALLINT

Definition at line 147 of file tds.h.

◆ TDS_STATE

typedef enum tds_states TDS_STATE

values for tds->state

◆ TDS_TINYINT

typedef unsigned char TDS_TINYINT

Definition at line 146 of file tds.h.

◆ TDS_UCHAR

typedef unsigned char TDS_UCHAR

Definition at line 145 of file tds.h.

◆ TDS_UINT

Definition at line 150 of file tds.h.

◆ TDS_UINT8

Definition at line 154 of file tds.h.

◆ TDS_UINTPTR

Definition at line 156 of file tds.h.

◆ TDS_USMALLINT

Definition at line 148 of file tds.h.

◆ TDSAUTHENTICATION

Definition at line 1 of file tds.h.

◆ TDSBCPINFO

typedef struct tds_bcpinfo TDSBCPINFO

Definition at line 1 of file tds.h.

◆ TDSBLOB

typedef struct tds_blob TDSBLOB

Information about blobs (e.g.

text or image). current_row contains this structure.

◆ TDSCOLUMN

typedef struct tds_column TDSCOLUMN

Definition at line 1 of file tds.h.

◆ TDSCOLUMNFUNCS

Definition at line 1 of file tds.h.

◆ TDSCOMPUTEINFO

Definition at line 61 of file tds.h.

◆ TDSCONFPARSE

typedef void(* TDSCONFPARSE) (const char *option, const char *value, void *param)

Definition at line 1304 of file tds.h.

◆ TDSCONNECTION

typedef struct tds_connection TDSCONNECTION

Definition at line 1 of file tds.h.

◆ TDSCONTEXT

typedef struct tds_context TDSCONTEXT

Definition at line 1 of file tds.h.

◆ TDSCURSOR

typedef struct tds_cursor TDSCURSOR

Definition at line 1 of file tds.h.

◆ TDSDATEREC

typedef struct tdsdaterec TDSDATEREC

Used by tds_datecrack.

◆ TDSDYNAMIC

typedef struct tds_dynamic TDSDYNAMIC

Definition at line 61 of file tds.h.

◆ TDSENV

typedef struct tds_env TDSENV

Definition at line 61 of file tds.h.

◆ TDSHEADERS

typedef struct tds_headers TDSHEADERS

◆ TDSICONV

typedef struct tdsiconvinfo TDSICONV

Definition at line 1 of file tds.h.

◆ TDSLOCALE

typedef struct tds_locale TDSLOCALE

Definition at line 61 of file tds.h.

◆ TDSLOGIN

typedef struct tds_login TDSLOGIN

Definition at line 61 of file tds.h.

◆ TDSMESSAGE

typedef struct tds_message TDSMESSAGE

◆ TDSMULTIPLE

typedef struct tds_multiple TDSMULTIPLE

◆ TDSPACKET

typedef struct tds_packet TDSPACKET

Definition at line 61 of file tds.h.

◆ TDSPARAMINFO

Definition at line 70 of file tds.h.

◆ TDSPOLLWAKEUP

Definition at line 61 of file tds.h.

◆ TDSRESULTINFO

Definition at line 61 of file tds.h.

◆ TDSRET

typedef int TDSRET

Definition at line 201 of file tds.h.

◆ TDSSOCKET

typedef struct tds_socket TDSSOCKET

Definition at line 1 of file tds.h.

◆ TDSUPDCOL

typedef struct tds_upd_col TDSUPDCOL

◆ TDSVARIANT

typedef struct tds_variant TDSVARIANT

Store variant informations.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TDS_CUR_ISTAT_UNUSED 
TDS_CUR_ISTAT_DECLARED 
TDS_CUR_ISTAT_OPEN 
TDS_CUR_ISTAT_CLOSED 
TDS_CUR_ISTAT_RDONLY 
TDS_CUR_ISTAT_UPDATABLE 
TDS_CUR_ISTAT_ROWCNT 
TDS_CUR_ISTAT_DEALLOC 

Definition at line 332 of file tds.h.

◆ anonymous enum

anonymous enum
Enumerator
TDS_TYPEFLAG_INVALID 
TDS_TYPEFLAG_NULLABLE 
TDS_TYPEFLAG_FIXED 
TDS_TYPEFLAG_VARIABLE 
TDS_TYPEFLAG_COLLATE 
TDS_TYPEFLAG_ASCII 
TDS_TYPEFLAG_UNICODE 
TDS_TYPEFLAG_NUMERIC 
TDS_TYPEFLAG_DATETIME 

Definition at line 420 of file tds.h.

◆ tds_bcp_directions

bcp direction

Enumerator
TDS_BCP_IN 
TDS_BCP_OUT 
TDS_BCP_QUERYOUT 
TDS_BCP_IN 
TDS_BCP_OUT 
TDS_BCP_QUERYOUT 

Definition at line 1652 of file tds.h.

◆ tds_cursor_fetch

Enumerator
TDS_CURSOR_FETCH_NEXT 
TDS_CURSOR_FETCH_PREV 
TDS_CURSOR_FETCH_FIRST 
TDS_CURSOR_FETCH_LAST 
TDS_CURSOR_FETCH_ABSOLUTE 
TDS_CURSOR_FETCH_RELATIVE 
TDS_CURSOR_FETCH_NEXT 
TDS_CURSOR_FETCH_PREV 
TDS_CURSOR_FETCH_FIRST 
TDS_CURSOR_FETCH_LAST 
TDS_CURSOR_FETCH_ABSOLUTE 
TDS_CURSOR_FETCH_RELATIVE 

Definition at line 993 of file tds.h.

◆ tds_cursor_operation

Enumerator
TDS_CURSOR_POSITION 
TDS_CURSOR_UPDATE 
TDS_CURSOR_DELETE 
TDS_CURSOR_INSERT 
TDS_CURSOR_POSITION 
TDS_CURSOR_UPDATE 
TDS_CURSOR_DELETE 
TDS_CURSOR_INSERT 

Definition at line 985 of file tds.h.

◆ TDS_CURSOR_STATE

Enumerator
TDS_CURSOR_STATE_UNACTIONED 
TDS_CURSOR_STATE_REQUESTED 
TDS_CURSOR_STATE_SENT 
TDS_CURSOR_STATE_ACTIONED 
TDS_CURSOR_STATE_UNACTIONED 
TDS_CURSOR_STATE_REQUESTED 
TDS_CURSOR_STATE_SENT 
TDS_CURSOR_STATE_ACTIONED 

Definition at line 968 of file tds.h.

◆ tds_encryption_level

Enumerator
TDS_ENCRYPTION_OFF 
TDS_ENCRYPTION_REQUEST 
TDS_ENCRYPTION_REQUIRE 
TDS_ENCRYPTION_DEFAULT 
TDS_ENCRYPTION_OFF 
TDS_ENCRYPTION_REQUEST 
TDS_ENCRYPTION_REQUIRE 

Definition at line 355 of file tds.h.

◆ tds_end

enum tds_end

Flags returned in TDS_DONE token.

Enumerator
TDS_DONE_FINAL 

final result set, command completed successfully.

TDS_DONE_MORE_RESULTS 

more results follow

TDS_DONE_ERROR 

error occurred

TDS_DONE_INXACT 

transaction in progress

TDS_DONE_PROC 

results are from a stored procedure

TDS_DONE_COUNT 

count field in packet is valid

TDS_DONE_CANCELLED 

acknowledging an attention command (usually a cancel)

TDS_DONE_EVENT 
TDS_DONE_SRVERROR 

SQL server server error.

TDS_DONE_NO_TRAN 
TDS_DONE_TRAN_SUCCEED 
TDS_DONE_TRAN_PROGRESS 
TDS_DONE_STMT_ABORT 
TDS_DONE_TRAN_ABORT 
TDS_DONE_FINAL 

final result set, command completed successfully.

TDS_DONE_MORE_RESULTS 

more results follow

TDS_DONE_ERROR 

error occurred

TDS_DONE_INXACT 

transaction in progress

TDS_DONE_PROC 

results are from a stored procedure

TDS_DONE_COUNT 

count field in packet is valid

TDS_DONE_CANCELLED 

acknowledging an attention command (usually a cancel)

TDS_DONE_EVENT 
TDS_DONE_SRVERROR 

SQL server server error.

TDS_DONE_NO_TRAN 
TDS_DONE_TRAN_SUCCEED 
TDS_DONE_TRAN_PROGRESS 
TDS_DONE_STMT_ABORT 
TDS_DONE_TRAN_ABORT 

Definition at line 268 of file tds.h.

◆ TDS_ICONV_ENTRY

Enumerator
client2ucs2 
client2server_chardata 
initial_char_conv_count 
client2ucs2 
client2server_chardata 
initial_char_conv_count 

Definition at line 1107 of file tds.h.

◆ TDS_MULTIPLE_TYPE

Enumerator
TDS_MULTIPLE_QUERY 
TDS_MULTIPLE_EXECUTE 
TDS_MULTIPLE_RPC 
TDS_MULTIPLE_QUERY 
TDS_MULTIPLE_EXECUTE 
TDS_MULTIPLE_RPC 

Definition at line 1082 of file tds.h.

◆ tds_operations

Enumerator
TDS_OP_NONE 
TDS_OP_CURSOR 
TDS_OP_CURSOROPEN 
TDS_OP_CURSORPREPARE 
TDS_OP_CURSOREXECUTE 
TDS_OP_CURSORPREPEXEC 
TDS_OP_CURSORUNPREPARE 
TDS_OP_CURSORFETCH 
TDS_OP_CURSOROPTION 
TDS_OP_CURSORCLOSE 
TDS_OP_EXECUTESQL 
TDS_OP_PREPARE 
TDS_OP_EXECUTE 
TDS_OP_PREPEXEC 
TDS_OP_PREPEXECRPC 
TDS_OP_UNPREPARE 
TDS_OP_DYN_DEALLOC 
TDS_OP_NONE 
TDS_OP_CURSOR 
TDS_OP_CURSOROPEN 
TDS_OP_CURSORPREPARE 
TDS_OP_CURSOREXECUTE 
TDS_OP_CURSORPREPEXEC 
TDS_OP_CURSORUNPREPARE 
TDS_OP_CURSORFETCH 
TDS_OP_CURSOROPTION 
TDS_OP_CURSORCLOSE 
TDS_OP_EXECUTESQL 
TDS_OP_PREPARE 
TDS_OP_EXECUTE 
TDS_OP_PREPEXEC 
TDS_OP_PREPEXECRPC 
TDS_OP_UNPREPARE 
TDS_OP_DYN_DEALLOC 

Definition at line 871 of file tds.h.

◆ tds_states

enum tds_states

values for tds->state

Enumerator
TDS_IDLE 

no data expected

TDS_WRITING 

client is writing data

TDS_SENDING 

client would send data

TDS_PENDING 

cilent is waiting for data

TDS_READING 

client is reading data

TDS_DEAD 

no connection

TDS_IDLE 

no data expected

TDS_WRITING 

client is writing data

TDS_SENDING 

client would send data

TDS_PENDING 

cilent is waiting for data

TDS_READING 

client is reading data

TDS_DEAD 

no connection

Definition at line 861 of file tds.h.

◆ tds_token_flags

Enumerator
TDS_HANDLE_ALL 
TDS_RETURN_OTHERS 
TDS_STOPAT_OTHERS 
TDS_RETURN_ROWFMT 
TDS_STOPAT_ROWFMT 
TDS_RETURN_COMPUTEFMT 
TDS_STOPAT_COMPUTEFMT 
TDS_RETURN_PARAMFMT 
TDS_STOPAT_PARAMFMT 
TDS_RETURN_DONE 
TDS_STOPAT_DONE 
TDS_RETURN_ROW 
TDS_STOPAT_ROW 
TDS_RETURN_COMPUTE 
TDS_STOPAT_COMPUTE 
TDS_RETURN_PROC 
TDS_STOPAT_PROC 
TDS_RETURN_MSG 
TDS_STOPAT_MSG 
TDS_RETURN_ENV 
TDS_STOPAT_ENV 
TDS_TOKEN_RESULTS 
TDS_TOKEN_TRAILING 
TDS_HANDLE_ALL 
TDS_RETURN_OTHERS 
TDS_STOPAT_OTHERS 
TDS_RETURN_ROWFMT 
TDS_STOPAT_ROWFMT 
TDS_RETURN_COMPUTEFMT 
TDS_STOPAT_COMPUTEFMT 
TDS_RETURN_PARAMFMT 
TDS_STOPAT_PARAMFMT 
TDS_RETURN_DONE 
TDS_STOPAT_DONE 
TDS_RETURN_ROW 
TDS_STOPAT_ROW 
TDS_RETURN_COMPUTE 
TDS_STOPAT_COMPUTE 
TDS_RETURN_PROC 
TDS_STOPAT_PROC 
TDS_RETURN_MSG 
TDS_STOPAT_MSG 
TDS_RETURN_ENV 
TDS_STOPAT_ENV 
TDS_TOKEN_RESULTS 
TDS_TOKEN_TRAILING 

Definition at line 248 of file tds.h.

◆ tds_token_results

Enumerator
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 
TDS_TOKEN_RES_ENV 
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 
TDS_TOKEN_RES_ENV 

Definition at line 232 of file tds.h.

◆ TDSERRNO

enum TDSERRNO
Enumerator
TDSEOK 
TDSEVERDOWN 
TDSEICONVIU 
TDSEICONVAVAIL 
TDSEICONVO 
TDSEICONVI 
TDSEICONV2BIG 
TDSEPORTINSTANCE 
TDSESYNC 
TDSEFCON 
TDSETIME 
TDSEREAD 
TDSEWRIT 
TDSESOCK 
TDSECONN 
TDSEMEM 
TDSEINTF 
TDSEUHST 
TDSEPWD 
TDSESEOF 
TDSERPND 
TDSEBTOK 
TDSEOOB 
TDSECLOS 
TDSEUSCT 
TDSEUTDS 
TDSEEUNR 
TDSECAP 
TDSENEG 
TDSEUMSG 
TDSECAPTYP 
TDSECONF 
TDSEBPROBADTYP 
TDSECLOSEIN 
TDSEOK 
TDSEVERDOWN 
TDSEINPROGRESS 
TDSEICONVIU 
TDSEICONVAVAIL 
TDSEICONVO 
TDSEICONVI 
TDSEICONV2BIG 
TDSEPORTINSTANCE 
TDSESYNC 
TDSEFCON 
TDSETIME 
TDSEREAD 
TDSEWRIT 
TDSESOCK 
TDSECONN 
TDSEMEM 
TDSEINTF 
TDSEUHST 
TDSEPWD 
TDSESEOF 
TDSERPND 
TDSEBTOK 
TDSEOOB 
TDSECLOS 
TDSEUSCT 
TDSEUTDS 
TDSEEUNR 
TDSECAP 
TDSENEG 
TDSEUMSG 
TDSECAPTYP 
TDSECONF 
TDSEBPROBADTYP 
TDSECLOSEIN 

Definition at line 295 of file tds.h.

Function Documentation

◆ is_tds_type_valid()

static bool is_tds_type_valid ( int  type)
inlinestatic

◆ tds5_send_optioncmd()

int tds5_send_optioncmd ( TDSSOCKET tds,
TDS_OPTION_CMD  tds_command,
TDS_OPTION  tds_option,
TDS_OPTION_ARG tds_argument,
TDS_INT tds_argsize 
)

◆ tds_alloc_additional_socket()

TDSSOCKET* tds_alloc_additional_socket ( TDSCONNECTION conn)

◆ tds_bcp_done()

TDSRET tds_bcp_done ( TDSSOCKET tds,
int rows_copied 
)

Tell we finished sending BCP data to server \tds.

Parameters
[out]rows_copiednumber of rows copied to server

Definition at line 890 of file bulk.c.

◆ tds_bcp_fread()

TDSRET tds_bcp_fread ( TDSSOCKET tds,
TDSICONV char_conv,
FILE *  stream,
const char *  terminator,
size_t  term_len,
char **  outbuf,
size_t *  outbytes 
)

Read a data file, passing the data through iconv().

Return values
TDS_SUCCESSsuccess
TDS_FAILerror reading the column
TDS_NO_MORE_RESULTSend of file detected

Definition at line 1133 of file bulk.c.

◆ tds_bcp_init()

TDSRET tds_bcp_init ( TDSSOCKET tds,
TDSBCPINFO bcpinfo 
)

Initialize BCP information.

Query structure of the table to server. \tds

Parameters
bcpinfoBCP information to initialize. Structure should be allocate and table name and direction should be already set.

Definition at line 88 of file bulk.c.

◆ tds_bcp_send_record()

TDSRET tds_bcp_send_record ( TDSSOCKET tds,
TDSBCPINFO bcpinfo,
tds_bcp_get_col_data  get_col_data,
tds_bcp_null_error  null_error,
int  offset 
)

Send one row of data to server \tds.

Parameters
bcpinfoBCP information
get_col_datafunction to call to retrieve data to be sent
ignoredfunction to call if we try to send NULL if not allowed (not used)
offsetpassed to get_col_data and null_error to specify the row to get
Returns
TDS_SUCCESS or TDS_FAIL.

Definition at line 344 of file bulk.c.

◆ tds_bcp_start()

TDSRET tds_bcp_start ( TDSSOCKET tds,
TDSBCPINFO bcpinfo 
)

Start sending BCP data to server.

Initialize stream to accept data. \tds

Parameters
bcpinfoBCP information already prepared

Definition at line 920 of file bulk.c.

◆ tds_bcp_start_copy_in()

TDSRET tds_bcp_start_copy_in ( TDSSOCKET tds,
TDSBCPINFO bcpinfo 
)

Start bulk copy to server \tds.

Parameters
bcpinfoBCP information already prepared

Definition at line 972 of file bulk.c.

◆ tds_capability_enabled()

static bool tds_capability_enabled ( const TDS_CAPABILITY_TYPE cap,
unsigned  cap_num 
)
inlinestatic

Definition at line 1692 of file tds.h.

References tds_capability_type::values.

◆ tds_connect_and_login()

int tds_connect_and_login ( TDSSOCKET tds,
TDSLOGIN login 
)

Definition at line 657 of file login.c.

◆ tds_convert_string_free()

void tds_convert_string_free ( const char *  original,
const char *  converted 
)

◆ tds_get_cardinal_type()

TDS_SERVER_TYPE tds_get_cardinal_type ( TDS_SERVER_TYPE  datatype,
int  usertype 
)

Definition at line 351 of file data.c.

◆ tds_get_conversion_type()

TDS_SERVER_TYPE tds_get_conversion_type ( TDS_SERVER_TYPE  srctype,
int  colsize 
)

Return type suitable for conversions (convert all nullable types to fixed type)

Parameters
srctypetype to convert
colsizesize of type
Returns
type for conversion

Definition at line 124 of file tds_types.h.

◆ tds_get_homedir()

char* tds_get_homedir ( void  )

Get user home directory.

Returns
home directory or NULL if error. Should be freed with free

Definition at line 414 of file threadsafe.c.

◆ tds_get_locale()

TDSLOCALE* tds_get_locale ( void  )

Get locale information.

Returns
allocated structure with all information or NULL if error

Definition at line 50 of file locale.c.

◆ tds_get_size_by_type()

int tds_get_size_by_type ( TDS_SERVER_TYPE  servertype)

Return the number of bytes needed by specified type.

Definition at line 9 of file tds_types.h.

◆ tds_get_varint_size()

int tds_get_varint_size ( TDSCONNECTION conn,
int  datatype 
)

tds_get_varint_size() returns the size of a variable length integer returned in a TDS 7.0 result string

tds_get_varint_size() returns the size of a variable length integer returned in a TDS 7.0 result string

Definition at line 57 of file tds_types.h.

◆ tds_gethostbyname_r()

static struct hostent * tds_gethostbyname_r ( const char *  servername,
struct hostent *  result,
char *  buffer,
int  buflen,
int h_errnop 
)

Definition at line 57 of file getaddrinfo.c.

◆ tds_getmac()

void tds_getmac ( TDS_SYS_SOCKET  s,
unsigned char  mac[6] 
)

Definition at line 45 of file getmac.c.

◆ tds_getservice()

int tds_getservice ( const char *  name)

Return service port given the name.

Definition at line 343 of file threadsafe.c.

◆ tds_gss_get_auth()

TDSAUTHENTICATION* tds_gss_get_auth ( TDSSOCKET tds)

◆ tds_iconv_alloc()

int tds_iconv_alloc ( TDSCONNECTION conn)

Allocate iconv stuff.

Returns
0 for success

Definition at line 286 of file iconv.c.

◆ tds_localtime_r()

struct tm* tds_localtime_r ( const time_t *  timep,
struct tm *  result 
)

Definition at line 78 of file threadsafe.c.

◆ tds_money_to_string()

char* tds_money_to_string ( const TDS_MONEY money,
char *  s 
)

Definition at line 64 of file numeric.c.

References if(), int, tdsoldmoney::mnyhigh, tdsoldmoney::mnylow, n, PRId64, and tdsmoney::tdsoldmoney.

◆ tds_numeric_change_prec_scale()

TDS_INT tds_numeric_change_prec_scale ( TDS_NUMERIC numeric,
unsigned char  new_prec,
unsigned char  new_scale 
)

Definition at line 241 of file numeric.c.

◆ tds_numeric_to_string()

TDS_INT tds_numeric_to_string ( const TDS_NUMERIC numeric,
char *  s 
)
Returns
<0 if error

Definition at line 94 of file numeric.c.

◆ tds_prwsaerror()

char* tds_prwsaerror ( int  erc)

◆ tds_prwsaerror_free()

void tds_prwsaerror_free ( char *  s)

◆ tds_random_buffer()

void tds_random_buffer ( unsigned char *  out,
int  len 
)

Definition at line 40 of file random.c.

◆ tds_release_cur_dyn()

static void tds_release_cur_dyn ( TDSSOCKET tds)
inlinestatic

◆ tds_set_app()

bool tds_set_app ( TDSLOGIN tds_login,
const char *  application 
)

Definition at line 112 of file login.c.

◆ tds_set_bulk()

void tds_set_bulk ( TDSLOGIN tds_login,
TDS_TINYINT  enabled 
)

Definition at line 94 of file login.c.

References tds_login::bulk_copy.

◆ tds_set_client_charset()

bool tds_set_client_charset ( TDSLOGIN tds_login,
const char *  charset 
)

Definition at line 162 of file login.c.

◆ tds_set_column_type()

void tds_set_column_type ( TDSCONNECTION conn,
TDSCOLUMN curcol,
TDS_SERVER_TYPE  type 
)

Set type of column initializing all dependency.

Parameters
curcolcolumn to set
typetype to set

column_usertype should already be set.

Parameters
curcolcolumn to set
typetype to set

Definition at line 225 of file data.c.

◆ tds_set_host()

bool tds_set_host ( TDSLOGIN tds_login,
const char *  hostname 
)

Definition at line 106 of file login.c.

◆ tds_set_language()

bool tds_set_language ( TDSLOGIN tds_login,
const char *  language 
)

Definition at line 168 of file login.c.

◆ tds_set_library()

bool tds_set_library ( TDSLOGIN tds_login,
const char *  library 
)

Definition at line 156 of file login.c.

◆ tds_set_packet()

void tds_set_packet ( TDSLOGIN tds_login,
int  packet_size 
)

Definition at line 73 of file login.c.

◆ tds_set_param_type()

void tds_set_param_type ( TDSCONNECTION conn,
TDSCOLUMN curcol,
TDS_SERVER_TYPE  type 
)

Set type of column initializing all dependency.

Parameters
tdsstate information for the socket and the TDS protocol
curcolcolumn to set
typetype to set

Definition at line 247 of file data.c.

◆ tds_set_passwd()

bool tds_set_passwd ( TDSLOGIN tds_login,
const char *  password 
)

Definition at line 85 of file login.c.

◆ tds_set_port()

void tds_set_port ( TDSLOGIN tds_login,
int  port 
)

Definition at line 79 of file login.c.

◆ tds_set_server()

bool tds_set_server ( TDSLOGIN tds_login,
const char *  server 
)

Set the servername in a TDSLOGIN structure.

Normally copies server into tds_login. If server does not point to a plausible name, the environment variables TDSQUERY and DSQUERY are used, in that order. If they don't exist, the "default default" servername is "SYBASE" (although the utility of that choice is a bit murky).

Parameters
tds_loginpoints to a TDSLOGIN structure
serverthe servername, or NULL, or a zero-length string

Normally copies server into tds_login. If server does not point to a plausible name, the environment variables TDSQUERY and DSQUERY are used, in that order. If they don't exist, the "default default" servername is "SYBASE" (although the utility of that choice is a bit murky).

Parameters
tds_loginpoints to a TDSLOGIN structure
serverthe servername, or NULL, or a zero-length string

Definition at line 129 of file login.c.

◆ tds_set_state()

TDS_STATE tds_set_state ( TDSSOCKET tds,
TDS_STATE  state 
)

Set state of TDS connection, with logging and checking.

Parameters
tdsstate information for the socket and the TDS protocol
statethe new state of the connection, cf. TDS_STATE.
Returns
the new state, which might not be state.

Definition at line 65 of file util.c.

◆ tds_set_user()

bool tds_set_user ( TDSLOGIN tds_login,
const char *  username 
)

Definition at line 100 of file login.c.

◆ tds_set_version()

void tds_set_version ( TDSLOGIN tds_login,
TDS_TINYINT  major_ver,
TDS_TINYINT  minor_ver 
)

Definition at line 67 of file login.c.

◆ tds_strndup()

char* tds_strndup ( const void *  s,
TDS_INTPTR  len 
)

Copy a string of length len to a new allocated buffer This function does not read more than len bytes Please note that some system implementation of strndup do not assure they don't read past len bytes as they use still strlen to check length to copy limiting after strlen to size passed Also this function is different from strndup as it assume that len bytes are valid String returned is NUL terminated.

Parameters
sstring to copy from
lenlength to copy
Returns
string copied or NULL if errors

Copy a string of length len to a new allocated buffer This function does not read more than len bytes Please note that some system implementation of strndup do not assure they don't read past len bytes as they use still strlen to check length to copy limiting after strlen to size passed Also this function is different from strndup as it assume that len bytes are valid String returned is NUL terminated.

Please note that some system implementations of strndup do not assure they don't read past len bytes as they use still strlen to check length to copy limiting after strlen to size passed. String returned is NUL terminated.

Parameters
sstring to copy from
lenlength to copy
Returns
string copied or NULL if errors

Definition at line 414 of file util.c.

◆ tds_swap_bytes()

void tds_swap_bytes ( void *  buf,
int  bytes 
)

Definition at line 185 of file util.c.

◆ tds_timestamp_str()

char* tds_timestamp_str ( char *  str,
int  maxlen 
)

Definition at line 101 of file threadsafe.c.

◆ tds_vstrbuild()

TDSRET tds_vstrbuild ( char *  buffer,
int  buflen,
int resultlen,
const char *  text,
int  textlen,
const char *  formats,
int  formatlen,
va_list  ap 
)

Definition at line 80 of file vstrbuild.c.

◆ tds_wakeup_get_fd()

static TDS_SYS_SOCKET tds_wakeup_get_fd ( const TDSPOLLWAKEUP wakeup)
inlinestatic

Definition at line 1599 of file tds.h.

References tds_poll_wakeup::s_signaled.

Referenced by tds_select().

◆ tds_writetext_continue()

TDSRET tds_writetext_continue ( TDSSOCKET tds,
const TDS_UCHAR text,
TDS_UINT  size 
)

Send some data in the writetext request started by tds_writetext_start.

You should write in total (with multiple calls to this function) all bytes declared calling tds_writetext_start. \tds

Parameters
textdata to write
sizedata size in bytes

Definition at line 1241 of file bulk.c.

◆ tds_writetext_end()

TDSRET tds_writetext_end ( TDSSOCKET tds)

Finish sending writetext data.

\tds

Definition at line 1258 of file bulk.c.

◆ tds_writetext_start()

TDSRET tds_writetext_start ( TDSSOCKET tds,
const char *  objname,
const char *  textptr,
const char *  timestamp,
int  with_log,
TDS_UINT  size 
)

Start writing writetext request.

This request start a bulk session. \tds

Parameters
objnametable name
textptrTEXTPTR (see sql documentation)
timestampdata timestamp
with_logis log is enabled during insert
sizebytes to be inserted

Definition at line 1203 of file bulk.c.

◆ tdsdump_close()

void tdsdump_close ( void  )

Close the TDS dump log file.

Definition at line 207 of file log.c.

◆ tdsdump_col()

void tdsdump_col ( const TDSCOLUMN col)

Write a column value to the debug log.

Parameters
colcolumn to dump

Definition at line 424 of file log.c.

◆ tdsdump_do_dump_buf()

void tdsdump_do_dump_buf ( const char *  file,
unsigned int  level_line,
const char *  msg,
const void *  buf,
size_t  length 
)

Dump the contents of data into the log file in a human readable format.

Parameters
filesource file name
level_lineline and level combined. This and file are automatically computed by TDS_DBG_* macros.
msgmessage to print before dump
bufbuffer to dump
lengthnumber of bytes in the buffer

Definition at line 270 of file log.c.

◆ tdsdump_do_log()

void tdsdump_do_log ( const char *  file,
unsigned int  level_line,
const char *  fmt,
  ... 
)

Write a message to the debug log.

Parameters
filename of the log file
level_linekind of detail to be included
fmtprintf-like format string

Definition at line 370 of file log.c.

◆ tdsdump_isopen()

int tdsdump_isopen ( void  )

Definition at line 111 of file log.c.

◆ tdsdump_off()

void tdsdump_off ( void  )

Temporarily turn off logging.

Definition at line 81 of file log.c.

References g_dump_mutex, tds_mutex_lock, tds_mutex_unlock, and tds_write_dump.

◆ tdsdump_on()

void tdsdump_on ( void  )

Turn logging back on.

You must call tdsdump_open() before calling this routine.

Definition at line 93 of file log.c.

References g_dump_mutex, tds_mutex_lock, tds_mutex_unlock, tds_write_dump, and tdsdump_isopen().

◆ tdsdump_open()

int tdsdump_open ( const char *  filename)

Create and truncate a human readable dump file for the TDS traffic.

The name of the file is specified by the filename parameter. If that is given as NULL or an empty string, any existing log file will be closed.

Returns
true if the file was opened, false if it couldn't be opened.

Definition at line 126 of file log.c.

◆ tdsdump_state()

int tdsdump_state ( void  )

Get the logging state.

Definition at line 105 of file log.c.

References tds_write_dump.

◆ tdserror()

int tdserror ( const TDSCONTEXT tds_ctx,
TDSSOCKET tds,
int  msgno,
int  errnum 
)

Call the client library's error handler (for library-generated errors only)

The client library error handler may return: TDS_INT_CANCEL – Return TDS_FAIL to the calling function. For TDSETIME, closes the connection first. TDS_INT_CONTINUE – For TDSETIME only, retry the network read/write operation. Else invalid. TDS_INT_TIMEOUT – For TDSETIME only, send a TDSCANCEL packet. Else invalid.

These are Sybase semantics, but they serve all purposes. The application tells the library to quit, fail, retry, or attempt to cancel. In the event of a network timeout, a failed operation necessarily means the connection becomes unusable, because no cancellation dialog was concluded with the server.

It is the client library's duty to call the error handler installed by the application, if any, and to interpret the installed handler's return code. It may return to this function one of the above codes only. This function will not check the return code because there's nothing that can be done here except abort. It is merely passed to the calling function, which will (we hope) DTRT.

Parameters
tds_ctxpoints to a TDSCONTEXT structure
tdsthe connection structure, may be NULL if not connected
msgnoan enumerated libtds msgno, cf. tds.h
errnumthe OS errno, if it matters, else zero
Returns
client library function's return code

Definition at line 322 of file util.c.

Variable Documentation

◆ STD_DATETIME_FMT

const char STD_DATETIME_FMT[]
extern

Definition at line 93 of file config.c.

◆ tds_debug_flags

int tds_debug_flags
extern

Definition at line 53 of file log.c.

◆ tds_g_append_mode

int tds_g_append_mode
extern

Definition at line 54 of file log.c.

◆ tds_numeric_bytes_per_prec

const int tds_numeric_bytes_per_prec[]
extern

The following little table is indexed by precision and will tell us the number of bytes required to store the specified precision.

The following little table is indexed by precision and will tell us the number of bytes required to store the specified precision.

Support precision up to 77 digits

Definition at line 41 of file numeric.c.

◆ tds_type_flags_ms

const unsigned char tds_type_flags_ms[256]
extern

Definition at line 189 of file tds_types.h.

Referenced by is_tds_type_valid().

◆ tds_write_dump

int tds_write_dump
extern

Tell if TDS debug logging is turned on or off.

Definition at line 57 of file log.c.

◆ tdsdump_elided

int tdsdump_elided
extern

Definition at line 61 of file log.c.

Referenced by tdsdump_do_dump_buf().

Modified on Sat May 25 14:22:38 2024 by modify_doxy.py rev. 669887