27     unsigned char precision;
 
   29     unsigned char array[33];
 
   58     TDS_USMALLINT minutes;
 
   69 typedef TDS_INT TDS_DATE;
 
   70 typedef TDS_INT TDS_TIME;
 
   72 typedef TDS_UINT8 TDS_BIGTIME;
 
   73 typedef TDS_UINT8 TDS_BIGDATETIME;
 
   75 #define TDS5_PARAMFMT2_TOKEN       32    
   76 #define TDS_LANGUAGE_TOKEN         33    
   77 #define TDS_ORDERBY2_TOKEN         34    
   78 #define TDS_ROWFMT2_TOKEN          97    
   79 #define TDS_MSG_TOKEN             101    
   80 #define TDS_LOGOUT_TOKEN          113    
   81 #define TDS_RETURNSTATUS_TOKEN    121    
   82 #define TDS_PROCID_TOKEN          124    
   83 #define TDS7_RESULT_TOKEN         129    
   84 #define TDS7_COMPUTE_RESULT_TOKEN 136    
   85 #define TDS_COLNAME_TOKEN         160    
   86 #define TDS_COLFMT_TOKEN          161    
   87 #define TDS_DYNAMIC2_TOKEN        163    
   88 #define TDS_TABNAME_TOKEN         164    
   89 #define TDS_COLINFO_TOKEN         165    
   90 #define TDS_OPTIONCMD_TOKEN       166    
   91 #define TDS_COMPUTE_NAMES_TOKEN   167    
   92 #define TDS_COMPUTE_RESULT_TOKEN  168    
   93 #define TDS_ORDERBY_TOKEN         169    
   94 #define TDS_ERROR_TOKEN           170    
   95 #define TDS_INFO_TOKEN            171    
   96 #define TDS_PARAM_TOKEN           172    
   97 #define TDS_LOGINACK_TOKEN        173    
   98 #define TDS_CONTROL_FEATUREEXTACK_TOKEN \ 
  100 #define TDS_ROW_TOKEN             209    
  101 #define TDS_NBC_ROW_TOKEN         210    
  102 #define TDS_CMP_ROW_TOKEN         211    
  103 #define TDS5_PARAMS_TOKEN         215    
  104 #define TDS_CAPABILITY_TOKEN      226    
  105 #define TDS_ENVCHANGE_TOKEN       227    
  106 #define TDS_SESSIONSTATE_TOKEN    228    
  107 #define TDS_EED_TOKEN             229    
  108 #define TDS_DBRPC_TOKEN           230    
  109 #define TDS5_DYNAMIC_TOKEN        231    
  110 #define TDS5_PARAMFMT_TOKEN       236    
  111 #define TDS_AUTH_TOKEN            237    
  112 #define TDS_RESULT_TOKEN          238    
  113 #define TDS_DONE_TOKEN            253    
  114 #define TDS_DONEPROC_TOKEN        254    
  115 #define TDS_DONEINPROC_TOKEN      255    
  118 #define TDS_CURCLOSE_TOKEN        128   
  119 #define TDS_CURDELETE_TOKEN       129   
  120 #define TDS_CURFETCH_TOKEN        130   
  121 #define TDS_CURINFO_TOKEN         131   
  122 #define TDS_CUROPEN_TOKEN         132   
  123 #define TDS_CURDECLARE_TOKEN      134   
  127 #define TDS_ENV_DATABASE    1 
  128 #define TDS_ENV_LANG        2 
  129 #define TDS_ENV_CHARSET     3 
  130 #define TDS_ENV_PACKSIZE    4 
  131 #define TDS_ENV_LCID            5 
  132 #define TDS_ENV_SQLCOLLATION    7 
  133 #define TDS_ENV_BEGINTRANS  8 
  134 #define TDS_ENV_COMMITTRANS 9 
  135 #define TDS_ENV_ROLLBACKTRANS   10 
  136 #define TDS_ENV_ROUTING     20 
  139 #define TDS_SP_CURSOR           1 
  140 #define TDS_SP_CURSOROPEN       2 
  141 #define TDS_SP_CURSORPREPARE    3 
  142 #define TDS_SP_CURSOREXECUTE    4 
  143 #define TDS_SP_CURSORPREPEXEC   5 
  144 #define TDS_SP_CURSORUNPREPARE  6 
  145 #define TDS_SP_CURSORFETCH      7 
  146 #define TDS_SP_CURSOROPTION     8 
  147 #define TDS_SP_CURSORCLOSE      9 
  148 #define TDS_SP_EXECUTESQL      10 
  149 #define TDS_SP_PREPARE         11 
  150 #define TDS_SP_EXECUTE         12 
  151 #define TDS_SP_PREPEXEC        13 
  152 #define TDS_SP_PREPEXECRPC     14 
  153 #define TDS_SP_UNPREPARE       15 
  206     SYBMSDATETIMEOFFSET = 43,
 
  223     SYBSENSITIVITY = 103,   
 
  230     SYB5BIGDATETIME = 187,  
 
  237     USER_UNICHAR_TYPE = 34,     
 
  238     USER_UNIVARCHAR_TYPE = 35   
 
  243 #define SYBAOPCNTU 76        
  245 #define SYBAOPSUMU 78        
  247 #define SYBAOPAVGU 80        
  252 #define SYBAOPCNT_BIG       9    
  253 #define SYBAOPSTDEV     48   
  254 #define SYBAOPSTDEVP        49   
  256 #define SYBAOPVARP      51   
  257 #define SYBAOPCHECKSUM_AGG  114  
  265     , TDS_OPT_DEFAULT = 2   
 
  272       TDS_OPT_DATEFIRST = 1     
 
  273     , TDS_OPT_TEXTSIZE = 2      
 
  274     , TDS_OPT_STAT_TIME = 3     
 
  275     , TDS_OPT_STAT_IO = 4       
 
  276     , TDS_OPT_ROWCOUNT = 5      
 
  277     , TDS_OPT_NATLANG = 6       
 
  278     , TDS_OPT_DATEFORMAT = 7    
 
  279     , TDS_OPT_ISOLATION = 8     
 
  281     , TDS_OPT_CHARSET = 10      
 
  282     , TDS_OPT_SHOWPLAN = 13     
 
  283     , TDS_OPT_NOEXEC = 14       
 
  284     , TDS_OPT_ARITHIGNOREON = 15    
 
  285     , TDS_OPT_ARITHABORTON = 17 
 
  286     , TDS_OPT_PARSEONLY = 18    
 
  287     , TDS_OPT_GETDATA = 20      
 
  288     , TDS_OPT_NOCOUNT = 21      
 
  289     , TDS_OPT_FORCEPLAN = 23    
 
  290     , TDS_OPT_FORMATONLY = 24   
 
  291     , TDS_OPT_CHAINXACTS = 25   
 
  292     , TDS_OPT_CURCLOSEONXACT = 26   
 
  293     , TDS_OPT_FIPSFLAG = 27     
 
  294     , TDS_OPT_RESTREES = 28     
 
  295     , TDS_OPT_IDENTITYON = 29   
 
  296     , TDS_OPT_CURREAD = 30      
 
  297     , TDS_OPT_CURWRITE = 31     
 
  298     , TDS_OPT_IDENTITYOFF = 32  
 
  299     , TDS_OPT_AUTHOFF = 33      
 
  300     , TDS_OPT_ANSINULL = 34     
 
  301     , TDS_OPT_QUOTED_IDENT = 35 
 
  302     , TDS_OPT_ARITHIGNOREOFF = 36   
 
  303     , TDS_OPT_ARITHABORTOFF = 37    
 
  304     , TDS_OPT_TRUNCABORT = 38   
 
  308     TDS_OPT_ARITHOVERFLOW = 0x01,
 
  309     TDS_OPT_NUMERICTRUNC = 0x02
 
  312 enum TDS_OPT_DATEFIRST_CHOICE
 
  314     TDS_OPT_MONDAY = 1, TDS_OPT_TUESDAY = 2, TDS_OPT_WEDNESDAY = 3, TDS_OPT_THURSDAY = 4, TDS_OPT_FRIDAY = 5, TDS_OPT_SATURDAY =
 
  315         6, TDS_OPT_SUNDAY = 7
 
  318 enum TDS_OPT_DATEFORMAT_CHOICE
 
  320     TDS_OPT_FMTMDY = 1, TDS_OPT_FMTDMY = 2, TDS_OPT_FMTYMD = 3, TDS_OPT_FMTYDM = 4, TDS_OPT_FMTMYD = 5, TDS_OPT_FMTDYM = 6
 
  322 enum TDS_OPT_ISOLATION_CHOICE
 
  331 typedef enum tds_packet_type
 
  352     TDS_USMALLINT locale_id;    
 
  354     TDS_UCHAR charset_id;       
 
  378 #define TDS_SF_BIN                   (TDS_USMALLINT) 0x100 
  379 #define TDS_SF_WIDTH_INSENSITIVE     (TDS_USMALLINT) 0x080 
  380 #define TDS_SF_KATATYPE_INSENSITIVE  (TDS_USMALLINT) 0x040 
  381 #define TDS_SF_ACCENT_SENSITIVE      (TDS_USMALLINT) 0x020 
  382 #define TDS_SF_CASE_INSENSITIVE      (TDS_USMALLINT) 0x010 
  385 #define TDS_UT_TIMESTAMP             80 
  389 enum option_flag1_values {
 
  390     TDS_BYTE_ORDER_X86      = 0, 
 
  391     TDS_CHARSET_ASCII       = 0, 
 
  393     TDS_FLOAT_IEEE_754      = 0, 
 
  394     TDS_INIT_DB_WARN        = 0, 
 
  395     TDS_SET_LANG_OFF        = 0, 
 
  396     TDS_USE_DB_SILENT       = 0, 
 
  397     TDS_BYTE_ORDER_68000    = 0x01, 
 
  398     TDS_CHARSET_EBDDIC      = 0x02, 
 
  399     TDS_FLOAT_VAX       = 0x04, 
 
  400     TDS_FLOAT_ND5000        = 0x08, 
 
  401     TDS_DUMPLOAD_OFF        = 0x10,  
 
  402     TDS_USE_DB_NOTIFY       = 0x20, 
 
  403     TDS_INIT_DB_FATAL       = 0x40, 
 
  404     TDS_SET_LANG_ON     = 0x80
 
  407 enum option_flag2_values {
 
  408     TDS_INIT_LANG_WARN      = 0, 
 
  409     TDS_INTEGRATED_SECURTY_OFF  = 0, 
 
  412     TDS_INIT_LANG_REQUIRED  = 0x01, 
 
  414     TDS_TRANSACTION_BOUNDARY71  = 0x04, 
 
  415     TDS_CACHE_CONNECT71     = 0x08, 
 
  416     TDS_USER_SERVER     = 0x10, 
 
  417     TDS_USER_REMUSER        = 0x20, 
 
  418     TDS_USER_SQLREPL        = 0x40, 
 
  419     TDS_INTEGRATED_SECURITY_ON  = 0x80
 
  422 enum option_flag3_values {
 
  423     TDS_RESTRICTED_COLLATION    = 0, 
 
  424     TDS_CHANGE_PASSWORD     = 0x01, 
 
  425     TDS_SEND_YUKON_BINARY_XML   = 0x02, 
 
  426     TDS_REQUEST_USER_INSTANCE   = 0x04, 
 
  427     TDS_UNKNOWN_COLLATION_HANDLING  = 0x08, 
 
  428     TDS_EXTENSION           = 0x10, 
 
  433     TDS_READONLY_INTENT = 0x20,
 
  438     TDS_DYN_PREPARE     = 0x01,
 
  440     TDS_DYN_DEALLOC     = 0x04,
 
  441     TDS_DYN_EXEC_IMMED  = 0x08,
 
  442     TDS_DYN_PROCNAME    = 0x10,
 
  444     TDS_DYN_DESCIN      = 0x40,
 
  445     TDS_DYN_DESCOUT     = 0x80,
 
  451     TDS_CUR_TYPE_KEYSET          = 0x0001, 
 
  452     TDS_CUR_TYPE_DYNAMIC         = 0x0002,
 
  453     TDS_CUR_TYPE_FORWARD         = 0x0004,
 
  454     TDS_CUR_TYPE_STATIC          = 0x0008,
 
  455     TDS_CUR_TYPE_FASTFORWARDONLY = 0x0010,
 
  456     TDS_CUR_TYPE_PARAMETERIZED   = 0x1000,
 
  457     TDS_CUR_TYPE_AUTO_FETCH      = 0x2000
 
  461     TDS_CUR_CONCUR_READ_ONLY         = 1,
 
  462     TDS_CUR_CONCUR_SCROLL_LOCKS      = 2,
 
  463     TDS_CUR_CONCUR_OPTIMISTIC        = 4, 
 
  464     TDS_CUR_CONCUR_OPTIMISTIC_VALUES = 8
 
  468 #define TDS_MAXNAME 30   
  469 #define TDS_PROGNLEN 10  
  474     TDS5_SEC_LOG_ENCRYPT = 1,
 
  475     TDS5_SEC_LOG_CHALLENGE = 2,
 
  476     TDS5_SEC_LOG_LABELS = 4,
 
  477     TDS5_SEC_LOG_APPDEFINED = 8,
 
  478     TDS5_SEC_LOG_SECSESS = 16,
 
  479     TDS5_SEC_LOG_ENCRYPT2 = 32,
 
  480     TDS5_SEC_LOG_ENCRYPT3 = 128,
 
  485     TDS5_MSG_SEC_ENCRYPT = 1, 
 
  486     TDS5_MSG_SEC_LOGPWD = 2, 
 
  487     TDS5_MSG_SEC_REMPWD = 3, 
 
  488     TDS5_MSG_SEC_CHALLENGE = 4, 
 
  489     TDS5_MSG_SEC_RESPONSE = 5, 
 
  490     TDS5_MSG_SEC_GETLABEL = 6, 
 
  491     TDS5_MSG_SEC_LABEL = 7, 
 
  492     TDS5_MSG_SQL_TBLNAME = 8, 
 
  493     TDS5_MSG_GW_RESERVED = 9, 
 
  494     TDS5_MSG_OMNI_CAPABILITIES = 10, 
 
  495     TDS5_MSG_SEC_OPAQUE = 11, 
 
  496     TDS5_MSG_HAFAILOVER = 12, 
 
  500     TDS5_MSG_SEC_ENCRYPT2 = 14, 
 
  501     TDS5_MSG_SEC_LOGPWD2 = 15, 
 
  502     TDS5_MSG_SEC_SUP_CIPHER = 16, 
 
  503     TDS5_MSG_MIG_REQ = 17, 
 
  505     TDS5_MSG_MIG_SYNC = 18, 
 
  506     TDS5_MSG_MIG_CONT = 19, 
 
  507     TDS5_MSG_MIG_IGN = 20, 
 
  508     TDS5_MSG_MIG_FAIL = 21, 
 
  510     TDS5_MSG_SEC_REMPWD2 = 22,
 
  511     TDS5_MSG_MIG_RESUME = 23,
 
  512     TDS5_MSG_SEC_ENCRYPT3 = 30,
 
  513     TDS5_MSG_SEC_LOGPWD3 = 31,
 
  514     TDS5_MSG_SEC_REMPWD3 = 32,
 
  515     TDS5_MSG_DR_MAP = 33,
 
  529     TDS5_SEC_SECSESS = 1, 
 
  530     TDS5_SEC_FORWARD = 2, 
 
  539     TDS5_SEC_NETWORK_AUTHENTICATION = 0x1,
 
  540     TDS5_SEC_MUTUAL_AUTHENTICATION = 0x2,
 
  541     TDS5_SEC_DELEGATION = 0x4,
 
  542     TDS5_SEC_INTEGRITY = 0x8,
 
  543     TDS5_SEC_CONFIDENTIALITY = 0x10,
 
  544     TDS5_SEC_DETECT_REPLAY = 0x20,
 
  545     TDS5_SEC_DETECT_SEQUENCE = 0x40,
 
  546     TDS5_SEC_DATA_ORIGIN = 0x80,
 
  547     TDS5_SEC_CHANNEL_BINDING = 0x100,
 
  551     TDS5_SEC_VERSION = 50,
 
  558     TDS7_ENCRYPT_NOT_SUP,