home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / odbcss.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  13KB  |  328 lines

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2. /*
  3. ** ODBCSS.H - This is the application include file for the
  4. ** SQL Server driver specific defines.
  5. **
  6. ** (C) Copyright 1993-1996 By Microsoft Corp.
  7. **
  8. */
  9.  
  10. //    SQLSetConnectOption/SQLSetStmtOption driver specific defines.
  11. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  12.  
  13. //    Connection Options
  14. #define SQL_COPT_SS_BASE                1200
  15. #define SQL_COPT_SS_REMOTE_PWD            (SQL_COPT_SS_BASE+1) // dbrpwset SQLSetConnectOption only
  16. #define SQL_COPT_SS_USE_PROC_FOR_PREP    (SQL_COPT_SS_BASE+2) // Use create proc for SQLPrepare
  17. #define SQL_COPT_SS_INTEGRATED_SECURITY    (SQL_COPT_SS_BASE+3) // Force integrated security on login
  18. #define SQL_COPT_SS_PRESERVE_CURSORS    (SQL_COPT_SS_BASE+4) // Preserve server cursors after SQLTransact
  19. #define SQL_COPT_SS_USER_DATA            (SQL_COPT_SS_BASE+5) // dbgetuserdata/dbsetuserdata
  20. #define SQL_COPT_SS_ANSI_OEM            (SQL_COPT_SS_BASE+6) // dbsetopt/DBANSItoOEM/DBOEMtoANSI
  21. #define SQL_COPT_SS_ENLIST_IN_DTC        (SQL_COPT_SS_BASE+7) // Enlist in a Viper transaction
  22. #define SQL_COPT_SS_ENLIST_IN_XA        (SQL_COPT_SS_BASE+8) // Enlist in a XA transaction
  23. #define SQL_COPT_SS_CONNECTION_DEAD        (SQL_COPT_SS_BASE+9) // dbdead SQLGetConnectOption only
  24. #define SQL_COPT_SS_FALLBACK_CONNECT    (SQL_COPT_SS_BASE+10) // Enables FallBack connections
  25. #define SQL_COPT_SS_PERF_DATA            (SQL_COPT_SS_BASE+11) // Used to access SQL Server ODBC driver performance data
  26. #define SQL_COPT_SS_PERF_DATA_LOG        (SQL_COPT_SS_BASE+12) // Used to set the logfile name for the Performance data
  27. #define SQL_COPT_SS_PERF_QUERY_INTERVAL (SQL_COPT_SS_BASE+13) // Used to set the query logging threshold in milliseconds.
  28. #define SQL_COPT_SS_PERF_QUERY_LOG        (SQL_COPT_SS_BASE+14) // Used to set the logfile name for saving queryies.
  29. #define SQL_COPT_SS_PERF_QUERY            (SQL_COPT_SS_BASE+15) // Used to start and stop query logging.
  30. #define SQL_COPT_SS_PERF_DATA_LOG_NOW    (SQL_COPT_SS_BASE+16) // Used to make a statistics log entry to disk.
  31. #define SQL_COPT_SS_QUOTED_IDENT        (SQL_COPT_SS_BASE+17) // Enable/Disable Quoted Identifiers
  32. #define SQL_COPT_SS_ANSI_NPW            (SQL_COPT_SS_BASE+18) // Enable/Disable ANSI NULL, Padding and Warnings
  33.  
  34. #define SQL_COPT_SS_MAX_USED            SQL_COPT_SS_ANSI_NPW
  35.  
  36. //    Statement Options
  37. #define SQL_SOPT_SS_BASE                1225
  38. #define SQL_SOPT_SS_TEXTPTR_LOGGING        (SQL_SOPT_SS_BASE+0) // Text pointer logging
  39. #define SQL_SOPT_SS_CURRENT_COMMAND        (SQL_SOPT_SS_BASE+1) // dbcurcmd SQLGetStmtOption only
  40. #define SQL_SOPT_SS_HIDDEN_COLUMNS        (SQL_SOPT_SS_BASE+2) // Expose FOR BROWSE hidden columns
  41. #define SQL_SOPT_SS_NOBROWSETABLE        (SQL_SOPT_SS_BASE+3) // Set NOBROWSETABLE option
  42. #define SQL_SOPT_SS_MAX_USED            SQL_SOPT_SS_NOBROWSETABLE
  43.  
  44.  
  45. //    Defines for use with SQL_COPT_SS_USE_PROC_FOR_PREP
  46. #define SQL_UP_OFF        0L            //    Procedures won't be used for prepare
  47. #define SQL_UP_ON        1L            //    Procedures will be used for prepare
  48. #define SQL_UP_ON_DROP    2L            //    Temp procedures will be explicitly dropped
  49. #define SQL_UP_DEFAULT    SQL_UP_ON
  50.  
  51. //    Defines for use with SQL_COPT_SS_INTEGRATED_SECURITY - Pre-Connect Option only
  52. #define SQL_IS_OFF        0L            //    Integrated security isn't used
  53. #define SQL_IS_ON        1L            //    Integrated security is used
  54. #define SQL_IS_DEFAULT    SQL_IS_OFF
  55.  
  56. //    Defines for use with SQL_COPT_SS_PRESERVE_CURSORS
  57. #define SQL_PC_OFF        0L            //    Cursors are closed on SQLTransact
  58. #define SQL_PC_ON        1L            //    Cursors remain open on SQLTransact
  59. #define SQL_PC_DEFAULT    SQL_PC_OFF
  60.  
  61. //    Defines for use with SQL_COPT_SS_USER_DATA
  62. #define SQL_UD_NOTSET    NULL            //    No user data pointer set
  63.  
  64. //    Defines for use with SQL_COPT_SS_ANSI_OEM
  65. #define SQL_AO_OFF        0L            //    ANSI/OEM translation is not performed
  66. #define SQL_AO_ON        1L            //    ANSI/OEM translation is performed
  67. #define SQL_AO_DEFAULT    SQL_AO_OFF
  68.  
  69. //    Defines for use with SQL_COPT_SS_CONNECTION_DEAD
  70. #define SQL_CD_FALSE    0L            //    Connection is open/available
  71. #define SQL_CD_TRUE        1L            //    Connection is closed/dead
  72.  
  73. //    Defines for use with SQL_COPT_SS_FALLBACK_CONNECT
  74. #define SQL_FB_OFF        0L            //    FallBack connections are disabled
  75. #define SQL_FB_ON        1L            //    FallBack connections are enabled
  76. #define SQL_FB_DEFAULT    SQL_FB_OFF
  77.  
  78. //    Defines for use with SQL_COPT_SS_ENLIST_IN_DTC
  79. #define SQL_DTC_DONE    0L            //    Delimits end of DTC transaction
  80.  
  81. //    Defines for use with SQL_COPT_SS_QUOTED_IDENT - Pre-Connect Option only
  82. #define SQL_QI_OFF        0L            //    Quoted identifiers are not supported
  83. #define SQL_QI_ON        1L            //    Quoted identifiers are supported
  84. #define SQL_QI_DEFAULT    SQL_QI_ON
  85.  
  86. //    Defines for use with SQL_COPT_SS_ANSI_NPW - Pre-Connect Option only
  87. #define SQL_AD_OFF        0L            //    ANSI NULLs, Padding and Warnings are not supported
  88. #define SQL_AD_ON        1L            //    ANSI NULLs, Padding and Warnings are supported
  89. #define SQL_AD_DEFAULT    SQL_AD_ON
  90.  
  91. //    Defines for use with SQL_SOPT_SS_TEXTPTR_LOGGING
  92. #define SQL_TL_OFF        0L            //    No logging on text pointer ops
  93. #define SQL_TL_ON        1L            //    Logging occurs on text pointer ops
  94. #define SQL_TL_DEFAULT    SQL_TL_ON
  95.  
  96. //    Defines for use with SQL_SOPT_SS_HIDDEN_COLUMNS
  97. #define SQL_HC_OFF        0L            //    FOR BROWSE columns are hidden
  98. #define SQL_HC_ON        1L            //    FOR BROWSE columns are exposed
  99. #define SQL_HC_DEFAULT    SQL_HC_OFF
  100.  
  101. //    Defines for use with SQL_SOPT_SS_NOBROWSETABLE
  102. #define SQL_NB_OFF        0L            //    NO_BROWSETABLE is off
  103. #define SQL_NB_ON        1L            //    NO_BROWSETABLE is on
  104. #define SQL_NB_DEFAULT    SQL_NB_OFF
  105.  
  106.  
  107. //    SQLColAttributes driver specific defines.
  108. //    SQLSet/GetDescField driver specific defines.
  109. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  110.  
  111. #define SQL_CA_SS_BASE                1200
  112. #define SQL_CA_SS_COLUMN_SSTYPE        (SQL_CA_SS_BASE+0)    //    dbcoltype/dbaltcoltype
  113. #define SQL_CA_SS_COLUMN_UTYPE        (SQL_CA_SS_BASE+1)    //    dbcolutype/dbaltcolutype
  114. #define SQL_CA_SS_NUM_ORDERS        (SQL_CA_SS_BASE+2)    //    dbnumorders
  115. #define SQL_CA_SS_COLUMN_ORDER        (SQL_CA_SS_BASE+3)    //    dbcolorder
  116. #define SQL_CA_SS_COLUMN_VARYLEN    (SQL_CA_SS_BASE+4)    //    dbvarylen
  117. #define SQL_CA_SS_NUM_COMPUTES        (SQL_CA_SS_BASE+5)    //    dbnumcompute
  118. #define SQL_CA_SS_COMPUTE_ID        (SQL_CA_SS_BASE+6)    //    dbnextrow status return
  119. #define SQL_CA_SS_COMPUTE_BYLIST    (SQL_CA_SS_BASE+7)    //    dbbylist
  120. #define SQL_CA_SS_COLUMN_ID            (SQL_CA_SS_BASE+8)    //    dbaltcolid
  121. #define SQL_CA_SS_COLUMN_OP            (SQL_CA_SS_BASE+9)    //    dbaltcolop
  122. #define SQL_CA_SS_COLUMN_SIZE        (SQL_CA_SS_BASE+10)    //    dbcollen
  123. #define SQL_CA_SS_COLUMN_HIDDEN        (SQL_CA_SS_BASE+11) //    Column is hidden (FOR BROWSE)
  124. #define SQL_CA_SS_COLUMN_KEY        (SQL_CA_SS_BASE+12) //    Column is key column (FOR BROWSE)
  125. #define SQL_CA_SS_BASE_COLUMN_NAME    (SQL_CA_SS_BASE+13) //    Returns base column name if available
  126. #define SQL_CA_SS_MAX_USED            SQL_CA_SS_BASE_COLUMN_NAME
  127.  
  128. // SQL Server Data Type Tokens. Returned by SQLColAttributes/SQL_CA_SS_COLUMN_SSTYPE.
  129. #define SQLTEXT             0x23
  130. #define SQLVARBINARY        0x25
  131. #define SQLINTN             0x26
  132. #define SQLVARCHAR            0x27
  133. #define SQLBINARY            0x2d
  134. #define SQLIMAGE            0x22
  135. #define SQLCHARACTER        0x2f
  136. #define SQLINT1             0x30
  137. #define SQLBIT                0x32
  138. #define SQLINT2             0x34
  139. #define SQLINT4             0x38
  140. #define SQLMONEY            0x3c
  141. #define SQLDATETIME         0x3d
  142. #define SQLFLT8             0x3e
  143. #define SQLFLTN             0x6d
  144. #define SQLMONEYN            0x6e
  145. #define SQLDATETIMN         0x6f
  146. #define SQLFLT4             0x3b
  147. #define SQLMONEY4            0x7a
  148. #define SQLDATETIM4         0x3a
  149. #define SQLDECIMAL            0x37
  150. #define SQLDECIMALN            0x6a
  151. #define SQLNUMERIC            0x3f
  152. #define SQLNUMERICN         0x6c
  153.  
  154. //    User Data Type definitions. Returned by SQLColAttributes/SQL_CA_SS_COLUMN_UTYPE.
  155. #define SQLudtTEXT            19
  156. #define SQLudtVARBINARY     4
  157. #define SQLudtINTN            13
  158. #define SQLudtVARCHAR        2
  159. #define SQLudtBINARY        3
  160. #define SQLudtIMAGE         20
  161. #define SQLudtCHAR            1
  162. #define SQLudtINT1            5
  163. #define SQLudtBIT            16
  164. #define SQLudtINT2            6
  165. #define SQLudtINT4            7
  166. #define SQLudtMONEY         11
  167. #define SQLudtDATETIME        12
  168. #define SQLudtFLT8            8
  169. #define SQLudtFLTN            14
  170. #define SQLudtMONEYN        17
  171. #define SQLudtDATETIMN        15
  172. #define SQLudtSYSNAME        18
  173. #define SQLudtTIMESTAMP     80
  174. #define SQLudtFLT4            23
  175. #define SQLudtMONEY4        21
  176. #define SQLudtDATETIM4        22
  177. #define SQLudtDECML            24
  178. #define SQLudtDECMLN        26
  179. #define SQLudtNUM            10
  180. #define SQLudtNUMN            25
  181. #define MIN_USER_DATATYPE    100
  182.  
  183. // aggregate operator types (returned by SQLColAttributes/SQL_CA_SS_COLUMN_OP)
  184. #define SQLAOPCNT    0x4b
  185. #define SQLAOPSUM    0x4d
  186. #define SQLAOPAVG    0x4f
  187. #define SQLAOPMIN    0x51
  188. #define SQLAOPMAX    0x52
  189. #define SQLAOPANY    0x53
  190. #define SQLAOPNOOP    0x56
  191.  
  192.  
  193. //    SQLGetInfo driver specific defines.
  194. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  195.  
  196. #define SQL_INFO_SS_FIRST        1200
  197. #define SQL_INFO_SS_NETLIB_NAME (SQL_INFO_SS_FIRST+0) //  dbprocinfo
  198. #define SQL_INFO_SS_MAX_USED    SQL_INFO_SS_NETLIB_NAME
  199.  
  200.  
  201. //    Internal server datatypes - used when binding to SQL_C_BINARY
  202. #ifndef MAXNUMERICLEN    // Resolve ODS/DBLib conflicts
  203. typedef struct dbmoney
  204. {                        // Internal representation of MONEY data type
  205.     LONG  mnyhigh;        // Money value *10,000 (High 32 bits/signed)
  206.     ULONG mnylow;        // Money value *10,000 (Low 32 bits/unsigned)
  207. } DBMONEY;
  208.  
  209. typedef struct dbdatetime
  210. {                        // Internal representation of DATETIME data type
  211.     LONG  dtdays;        // No of days since Jan-1-1900 (maybe negative)
  212.     ULONG dttime;        // No. of 300 hundredths of a second since midnight
  213. } DBDATETIME;
  214.  
  215. typedef struct dbdatetime4
  216. {                        // Internal representation of SMALLDATETIME data type
  217.     USHORT numdays;     // No of days since Jan-1-1900
  218.     USHORT nummins;     // No. of minutes since midnight
  219. } DBDATETIM4;
  220.  
  221. typedef LONG DBMONEY4;    // Internal representation of SMALLMONEY data type
  222.                         // Money value *10,000
  223.  
  224. #define MAXNUMERICLEN 16
  225.  
  226. #define DBNUM_PREC_TYPE BYTE
  227. #define DBNUM_SCALE_TYPE BYTE
  228. #define DBNUM_VAL_TYPE BYTE
  229.  
  230. typedef struct dbnumeric
  231. {                            // Internal representation of NUMERIC data type
  232.     DBNUM_PREC_TYPE   precision;            // Precision
  233.     DBNUM_SCALE_TYPE  scale;                // Scale
  234.     BYTE              sign;                 // Sign (1 if positive, 0 if negative)
  235.     DBNUM_VAL_TYPE      val[MAXNUMERICLEN];    // Value
  236. } DBNUMERIC;
  237.  
  238. typedef DBNUMERIC DBDECIMAL;// Internal representation of DECIMAL data type
  239. #endif //    MAXNUMERICLEN
  240.  
  241. /*****************************************************************
  242.  This struct is a global used for 
  243.  gathering statistal data on the driver.
  244.  Access to this struct is controled via the 
  245.  pStatCrit;
  246. ******************************************************************/
  247.  
  248. typedef struct sqlperf
  249. {
  250.     // Application Profile Statistics
  251.     DWORD TimerResolution;
  252.     DWORD SQLidu;
  253.     DWORD SQLiduRows;
  254.     DWORD SQLSelects;
  255.     DWORD SQLSelectRows;
  256.     DWORD Transactions;
  257.     DWORD SQLPrepares;
  258.     DWORD ExecDirects;
  259.     DWORD SQLExecutes;
  260.     DWORD CursorOpens;
  261.     DWORD CursorSize;
  262.     DWORD CursorUsed;
  263.     LDOUBLE PercentCursorUsed;
  264.     LDOUBLE AvgFetchTime;
  265.     LDOUBLE AvgCursorSize; 
  266.     LDOUBLE AvgCursorUsed;
  267.     DWORD SQLFetchTime;
  268.     DWORD SQLFetchCount;
  269.     DWORD CurrentStmtCount;
  270.     DWORD MaxOpenStmt;
  271.     DWORD SumOpenStmt;
  272.     
  273.     // Connection Statistics
  274.     DWORD CurrentConnectionCount;
  275.     DWORD MaxConnectionsOpened;
  276.     DWORD SumConnectionsOpened;
  277.     DWORD SumConnectiontime;
  278.     LDOUBLE AvgTimeOpened;
  279.  
  280.     // Network Statistics
  281.     DWORD ServerRndTrips;
  282.     DWORD BuffersSent;
  283.     DWORD BuffersRec;
  284.     DWORD BytesSent;
  285.     DWORD BytesRec;
  286.  
  287.     // Time Statistics;
  288.     DWORD msExecutionTime;
  289.     DWORD msNetWorkServerTime;
  290.  
  291. }     SQLPERF;
  292.  
  293. // The following are option for SQL_COPT_SS_PERF_DATA and SQL_COPT_SS_PERF_QUERY
  294. #define SQL_PERF_START    1            // Starts the driver sampling performance data.
  295. #define SQL_PERF_STOP    2            // Stops the counters from sampling performance data.
  296.  
  297. //    The following options have been deprecated
  298.  
  299. #define SQL_FAST_CONNECT                (SQL_COPT_SS_BASE+0)
  300. //    Defines for use with SQL_FAST_CONNECT - only useable before connecting
  301. #define SQL_FC_OFF        0L            //    Fast connect is off
  302. #define SQL_FC_ON        1L            //    Fast connect is on
  303. #define SQL_FC_DEFAULT    SQL_FC_OFF
  304.  
  305. //    Define old names
  306. #define SQL_REMOTE_PWD                    SQL_COPT_SS_REMOTE_PWD
  307. #define SQL_USE_PROCEDURE_FOR_PREPARE    SQL_COPT_SS_USE_PROC_FOR_PREP
  308. #define SQL_INTEGRATED_SECURITY         SQL_COPT_SS_INTEGRATED_SECURITY
  309. #define SQL_PRESERVE_CURSORS            SQL_COPT_SS_PRESERVE_CURSORS
  310. #define SQL_TEXTPTR_LOGGING             SQL_SOPT_SS_TEXTPTR_LOGGING
  311. /* 
  312.  
  313. The following data struct is used as the vParam with 
  314. SQL_COPT_SS_ENLIST_IN_XA to enlist in a XA stansaction
  315. when calling SQLSetStmtAttribute();
  316.  
  317. */
  318. typedef struct SQLXaTranTAG
  319. {
  320.     void FAR *transManager;
  321.     void FAR *xaTransID;
  322.     ULONG    xaTransIDLength;
  323.     DWORD   dwErrorInfo;
  324. } SQLXaTran;
  325.                            
  326. //    End of odbcss.h
  327. #pragma option pop /*P_O_Pop*/
  328.