home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 32 / IOPROG_32.ISO / SOFT / SqlEval7 / devtools / include / odbcss.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-09-14  |  24.1 KB  |  619 lines

  1. /*
  2. ** ODBCSS.H - This is the application include file for the
  3. ** SQL Server driver specific defines.
  4. **
  5. ** (C) Copyright 1993-1998 By Microsoft Corp.
  6. **
  7. */
  8.  
  9. #ifndef __ODBCSS
  10. #define __ODBCSS
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {             /* Assume C declarations for C++   */
  14. #endif  /* __cplusplus */
  15.  
  16. //    Useful defines
  17. #define SQL_MAX_SQLSERVERNAME    128        // max SQL Server identifier length
  18.  
  19. //    SQLSetConnectOption/SQLSetStmtOption driver specific defines.
  20. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  21.  
  22. //    Connection Options
  23. #define SQL_COPT_SS_BASE                1200
  24. #define SQL_COPT_SS_REMOTE_PWD            (SQL_COPT_SS_BASE+1) // dbrpwset SQLSetConnectOption only
  25. #define SQL_COPT_SS_USE_PROC_FOR_PREP    (SQL_COPT_SS_BASE+2) // Use create proc for SQLPrepare
  26. #define SQL_COPT_SS_INTEGRATED_SECURITY    (SQL_COPT_SS_BASE+3) // Force integrated security on login
  27. #define SQL_COPT_SS_PRESERVE_CURSORS    (SQL_COPT_SS_BASE+4) // Preserve server cursors after SQLTransact
  28. #define SQL_COPT_SS_USER_DATA            (SQL_COPT_SS_BASE+5) // dbgetuserdata/dbsetuserdata
  29. #define SQL_COPT_SS_ENLIST_IN_DTC        SQL_ATTR_ENLIST_IN_DTC // Enlist in a DTC transaction
  30. #define SQL_COPT_SS_ENLIST_IN_XA        SQL_ATTR_ENLIST_IN_XA // Enlist in a XA transaction
  31. #define SQL_COPT_SS_CONNECTION_DEAD        SQL_ATTR_CONNECTION_DEAD // dbdead SQLGetConnectOption only
  32. #define SQL_COPT_SS_FALLBACK_CONNECT    (SQL_COPT_SS_BASE+10) // Enables FallBack connections
  33. #define SQL_COPT_SS_PERF_DATA            (SQL_COPT_SS_BASE+11) // Used to access SQL Server ODBC driver performance data
  34. #define SQL_COPT_SS_PERF_DATA_LOG        (SQL_COPT_SS_BASE+12) // Used to set the logfile name for the Performance data
  35. #define SQL_COPT_SS_PERF_QUERY_INTERVAL (SQL_COPT_SS_BASE+13) // Used to set the query logging threshold in milliseconds.
  36. #define SQL_COPT_SS_PERF_QUERY_LOG        (SQL_COPT_SS_BASE+14) // Used to set the logfile name for saving queryies.
  37. #define SQL_COPT_SS_PERF_QUERY            (SQL_COPT_SS_BASE+15) // Used to start and stop query logging.
  38. #define SQL_COPT_SS_PERF_DATA_LOG_NOW    (SQL_COPT_SS_BASE+16) // Used to make a statistics log entry to disk.
  39. #define SQL_COPT_SS_QUOTED_IDENT        (SQL_COPT_SS_BASE+17) // Enable/Disable Quoted Identifiers
  40. #define SQL_COPT_SS_ANSI_NPW            (SQL_COPT_SS_BASE+18) // Enable/Disable ANSI NULL, Padding and Warnings
  41. #define SQL_COPT_SS_BCP                    (SQL_COPT_SS_BASE+19) // Allow BCP usage on connection
  42. #define SQL_COPT_SS_TRANSLATE            (SQL_COPT_SS_BASE+20) // Perform code page translation
  43. #define SQL_COPT_SS_ATTACHDBFILENAME    (SQL_COPT_SS_BASE+21) // File name to be attached as a database
  44. #define SQL_COPT_SS_CONCAT_NULL            (SQL_COPT_SS_BASE+22) // Enable/Disable CONCAT_NULL_YIELDS_NULL
  45.  
  46. #define SQL_COPT_SS_MAX_USED            SQL_COPT_SS_CONCAT_NULL
  47.  
  48. //    Statement Options
  49. #define SQL_SOPT_SS_BASE                1225
  50. #define SQL_SOPT_SS_TEXTPTR_LOGGING        (SQL_SOPT_SS_BASE+0) // Text pointer logging
  51. #define SQL_SOPT_SS_CURRENT_COMMAND        (SQL_SOPT_SS_BASE+1) // dbcurcmd SQLGetStmtOption only
  52. #define SQL_SOPT_SS_HIDDEN_COLUMNS        (SQL_SOPT_SS_BASE+2) // Expose FOR BROWSE hidden columns
  53. #define SQL_SOPT_SS_NOBROWSETABLE        (SQL_SOPT_SS_BASE+3) // Set NOBROWSETABLE option
  54. #define SQL_SOPT_SS_REGIONALIZE            (SQL_SOPT_SS_BASE+4) // Regionalize output character conversions
  55. #define SQL_SOPT_SS_CURSOR_OPTIONS        (SQL_SOPT_SS_BASE+5) // Server cursor options
  56. #define SQL_SOPT_SS_NOCOUNT_STATUS      (SQL_SOPT_SS_BASE+6) // Real vs. Not Real row count indicator
  57. #define SQL_SOPT_SS_MAX_USED            SQL_SOPT_SS_NOCOUNT_STATUS
  58.  
  59.  
  60. //    Defines for use with SQL_COPT_SS_USE_PROC_FOR_PREP
  61. #define SQL_UP_OFF        0L            //    Procedures won't be used for prepare
  62. #define SQL_UP_ON        1L            //    Procedures will be used for prepare
  63. #define SQL_UP_ON_DROP    2L            //    Temp procedures will be explicitly dropped
  64. #define SQL_UP_DEFAULT    SQL_UP_ON
  65.  
  66. //    Defines for use with SQL_COPT_SS_INTEGRATED_SECURITY - Pre-Connect Option only
  67. #define SQL_IS_OFF        0L            //    Integrated security isn't used
  68. #define SQL_IS_ON        1L            //    Integrated security is used
  69. #define SQL_IS_DEFAULT    SQL_IS_OFF
  70.  
  71. //    Defines for use with SQL_COPT_SS_PRESERVE_CURSORS
  72. #define SQL_PC_OFF        0L            //    Cursors are closed on SQLTransact
  73. #define SQL_PC_ON        1L            //    Cursors remain open on SQLTransact
  74. #define SQL_PC_DEFAULT    SQL_PC_OFF
  75.  
  76. //    Defines for use with SQL_COPT_SS_USER_DATA
  77. #define SQL_UD_NOTSET    NULL            //    No user data pointer set
  78.  
  79. //    Defines for use with SQL_COPT_SS_TRANSLATE
  80. #define SQL_XL_OFF        0L            //    Code page translation is not performed
  81. #define SQL_XL_ON        1L            //    Code page translation is performed
  82. #define SQL_XL_DEFAULT    SQL_XL_ON
  83.  
  84. //    Defines for use with SQL_COPT_SS_FALLBACK_CONNECT - Pre-Connect Option only
  85. #define SQL_FB_OFF        0L            //    FallBack connections are disabled
  86. #define SQL_FB_ON        1L            //    FallBack connections are enabled
  87. #define SQL_FB_DEFAULT    SQL_FB_OFF
  88.  
  89. //    Defines for use with SQL_COPT_SS_BCP - Pre-Connect Option only
  90. #define SQL_BCP_OFF        0L            //    BCP is not allowed on connection
  91. #define SQL_BCP_ON        1L            //    BCP is allowed on connection
  92. #define SQL_BCP_DEFAULT    SQL_BCP_OFF
  93.  
  94. //    Defines for use with SQL_COPT_SS_QUOTED_IDENT
  95. #define SQL_QI_OFF        0L            //    Quoted identifiers are enable
  96. #define SQL_QI_ON        1L            //    Quoted identifiers are disabled
  97. #define SQL_QI_DEFAULT    SQL_QI_ON
  98.  
  99. //    Defines for use with SQL_COPT_SS_ANSI_NPW - Pre-Connect Option only
  100. #define SQL_AD_OFF        0L            //    ANSI NULLs, Padding and Warnings are enabled
  101. #define SQL_AD_ON        1L            //    ANSI NULLs, Padding and Warnings are disabled
  102. #define SQL_AD_DEFAULT    SQL_AD_ON
  103.  
  104. //    Defines for use with SQL_COPT_SS_CONCAT_NULL - Pre-Connect Option only
  105. #define SQL_CN_OFF      0L          //  CONCAT_NULL_YIELDS_NULL is off
  106. #define SQL_CN_ON      1L          //  CONCAT_NULL_YIELDS_NULL is on
  107. #define SQL_CN_DEFAULT    SQL_CN_ON
  108.  
  109.  
  110. //    Defines for use with SQL_SOPT_SS_TEXTPTR_LOGGING
  111. #define SQL_TL_OFF        0L            //    No logging on text pointer ops
  112. #define SQL_TL_ON        1L            //    Logging occurs on text pointer ops
  113. #define SQL_TL_DEFAULT    SQL_TL_ON
  114.  
  115. //    Defines for use with SQL_SOPT_SS_HIDDEN_COLUMNS
  116. #define SQL_HC_OFF        0L          //  FOR BROWSE columns are hidden
  117. #define SQL_HC_ON        1L          //  FOR BROWSE columns are exposed
  118. #define SQL_HC_DEFAULT    SQL_HC_OFF
  119.  
  120. //    Defines for use with SQL_SOPT_SS_NOBROWSETABLE
  121. #define SQL_NB_OFF        0L            //    NO_BROWSETABLE is off
  122. #define SQL_NB_ON        1L            //    NO_BROWSETABLE is on
  123. #define SQL_NB_DEFAULT    SQL_NB_OFF
  124.  
  125. //    Defines for use with SQL_SOPT_SS_REGIONALIZE
  126. #define SQL_RE_OFF        0L            //    No regionalization occurs on output character conversions
  127. #define SQL_RE_ON        1L            //    Regionalization occurs on output character conversions
  128. #define SQL_RE_DEFAULT    SQL_RE_OFF
  129.  
  130. //    Defines for use with SQL_SOPT_SS_CURSOR_OPTIONS
  131. #define SQL_CO_OFF        0L            //    Clear all cursor options
  132. #define SQL_CO_FFO        1L            //    Fast-forward cursor will be used
  133. #define SQL_CO_AF        2L            //    Autofetch on cursor open
  134. #define SQL_CO_FFO_AF    (SQL_CO_FFO|SQL_CO_AF)    //    Fast-forward cursor with autofetch
  135. #define SQL_CO_DEFAULT    SQL_CO_OFF
  136.  
  137. //SQL_SOPT_SS_NOCOUNT_STATUS
  138. #define SQL_NC_OFF      0L 
  139. #define SQL_NC_ON       1L 
  140.  
  141. //    Defines returned by SQL_ATTR_CURSOR_TYPE/SQL_CURSOR_TYPE
  142. #define SQL_CURSOR_FAST_FORWARD_ONLY    8    //    Only returned by SQLGetStmtAttr/Option
  143.  
  144.  
  145. //    SQLColAttributes driver specific defines.
  146. //    SQLSet/GetDescField driver specific defines.
  147. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  148.  
  149. #define SQL_CA_SS_BASE                1200
  150. #define SQL_CA_SS_COLUMN_SSTYPE        (SQL_CA_SS_BASE+0)    //    dbcoltype/dbalttype
  151. #define SQL_CA_SS_COLUMN_UTYPE        (SQL_CA_SS_BASE+1)    //    dbcolutype/dbaltutype
  152. #define SQL_CA_SS_NUM_ORDERS        (SQL_CA_SS_BASE+2)    //    dbnumorders
  153. #define SQL_CA_SS_COLUMN_ORDER        (SQL_CA_SS_BASE+3)    //    dbordercol
  154. #define SQL_CA_SS_COLUMN_VARYLEN    (SQL_CA_SS_BASE+4)    //    dbvarylen
  155. #define SQL_CA_SS_NUM_COMPUTES        (SQL_CA_SS_BASE+5)    //    dbnumcompute
  156. #define SQL_CA_SS_COMPUTE_ID        (SQL_CA_SS_BASE+6)    //    dbnextrow status return
  157. #define SQL_CA_SS_COMPUTE_BYLIST    (SQL_CA_SS_BASE+7)    //    dbbylist
  158. #define SQL_CA_SS_COLUMN_ID            (SQL_CA_SS_BASE+8)    //    dbaltcolid
  159. #define SQL_CA_SS_COLUMN_OP            (SQL_CA_SS_BASE+9)    //    dbaltop
  160. #define SQL_CA_SS_COLUMN_SIZE        (SQL_CA_SS_BASE+10)    //    dbcollen
  161. #define SQL_CA_SS_COLUMN_HIDDEN        (SQL_CA_SS_BASE+11) //    Column is hidden (FOR BROWSE)
  162. #define SQL_CA_SS_COLUMN_KEY        (SQL_CA_SS_BASE+12) //    Column is key column (FOR BROWSE)
  163. #define SQL_CA_SS_MAX_USED            (SQL_CA_SS_BASE+13)
  164.  
  165. //    SQL Server Data Type Tokens.
  166. //    Returned by SQLColAttributes/SQL_CA_SS_COLUMN_SSTYPE.
  167. //    Used for types in the bcp* apis.
  168. #define SQLTEXT             0x23
  169. #define SQLVARBINARY        0x25
  170. #define SQLINTN             0x26
  171. #define SQLVARCHAR            0x27
  172. #define SQLBINARY            0x2d
  173. #define SQLIMAGE            0x22
  174. #define SQLCHARACTER        0x2f
  175. #define SQLINT1             0x30
  176. #define SQLBIT                0x32
  177. #define SQLINT2             0x34
  178. #define SQLINT4             0x38
  179. #define SQLMONEY            0x3c
  180. #define SQLDATETIME         0x3d
  181. #define SQLFLT8             0x3e
  182. #define SQLFLTN             0x6d
  183. #define SQLMONEYN            0x6e
  184. #define SQLDATETIMN         0x6f
  185. #define SQLFLT4             0x3b
  186. #define SQLMONEY4            0x7a
  187. #define SQLDATETIM4         0x3a
  188. //    New types for 6.0 and later servers
  189. #define SQLDECIMAL            0x6a
  190. #define SQLNUMERIC            0x6c
  191. //    New types for 7.0 and later servers
  192. #define SQLUNIQUEID            0x24
  193. #define SQLBIGCHAR            0xaf
  194. #define SQLBIGVARCHAR        0xa7
  195. #define SQLBIGBINARY        0xad
  196. #define SQLBIGVARBINARY        0xa5
  197. #define SQLBITN                0x68
  198. #define SQLNCHAR            0xef
  199. #define SQLNVARCHAR         0xe7
  200. #define SQLNTEXT            0x63
  201.  
  202. //    User Data Type definitions.
  203. //    Returned by SQLColAttributes/SQL_CA_SS_COLUMN_UTYPE.
  204. #define SQLudtBINARY            3
  205. #define SQLudtBIT                16
  206. #define SQLudtBITN                0
  207. #define SQLudtCHAR                1
  208. #define SQLudtDATETIM4            22
  209. #define SQLudtDATETIME            12
  210. #define SQLudtDATETIMN            15
  211. #define SQLudtDECML             24
  212. #define SQLudtDECMLN            26
  213. #define SQLudtFLT4                23
  214. #define SQLudtFLT8                8
  215. #define SQLudtFLTN                14
  216. #define SQLudtIMAGE             20
  217. #define SQLudtINT1                5
  218. #define SQLudtINT2                6
  219. #define SQLudtINT4                7
  220. #define SQLudtINTN                13
  221. #define SQLudtMONEY             11
  222. #define SQLudtMONEY4            21
  223. #define SQLudtMONEYN            17
  224. #define SQLudtNUM                10
  225. #define SQLudtNUMN                25
  226. #define SQLudtSYSNAME            18
  227. #define SQLudtTEXT                19
  228. #define SQLudtTIMESTAMP         80
  229. #define SQLudtUNIQUEIDENTIFIER    0
  230. #define SQLudtVARBINARY         4
  231. #define SQLudtVARCHAR            2
  232. #define MIN_USER_DATATYPE        256
  233.  
  234. //    Aggregate operator types.
  235. //    Returned by SQLColAttributes/SQL_CA_SS_COLUMN_OP.
  236. #define SQLAOPSTDEV     0x30    // Standard deviation
  237. #define SQLAOPSTDEVP    0x31    // Standard deviation population
  238. #define SQLAOPVAR        0x32    // Variance
  239. #define SQLAOPVARP        0x33    // Variance population
  240. #define SQLAOPCNT        0x4b    // Count
  241. #define SQLAOPSUM        0x4d    // Sum
  242. #define SQLAOPAVG        0x4f    // Average
  243. #define SQLAOPMIN        0x51    // Min
  244. #define SQLAOPMAX        0x52    // Max
  245. #define SQLAOPANY        0x53    // Any
  246. #define SQLAOPNOOP        0x56    // None
  247.  
  248.  
  249. //    SQLGetInfo driver specific defines.
  250. //    Microsoft has 1151 thru 1200 reserved for Microsoft SQL Server driver usage.
  251.  
  252. #define SQL_INFO_SS_FIRST        1199
  253. #define SQL_INFO_SS_NETLIB_NAMEW (SQL_INFO_SS_FIRST+0) //  dbprocinfo
  254. #define SQL_INFO_SS_NETLIB_NAMEA (SQL_INFO_SS_FIRST+1) //  dbprocinfo
  255. #define SQL_INFO_SS_MAX_USED    SQL_INFO_SS_NETLIB_NAMEA
  256. #ifdef UNICODE
  257. #define SQL_INFO_SS_NETLIB_NAME        SQL_INFO_SS_NETLIB_NAMEW
  258. #else
  259. #define SQL_INFO_SS_NETLIB_NAME        SQL_INFO_SS_NETLIB_NAMEA
  260. #endif
  261.  
  262.  
  263. //    SQLGetDiagField driver specific defines.
  264. //    Microsoft has -1150 thru -1199 reserved for Microsoft SQL Server driver usage.
  265.  
  266. #define SQL_DIAG_SS_BASE        (-1150)
  267. #define SQL_DIAG_SS_MSGSTATE    (SQL_DIAG_SS_BASE)
  268. #define SQL_DIAG_SS_SEVERITY    (SQL_DIAG_SS_BASE-1)
  269. #define SQL_DIAG_SS_SRVNAME     (SQL_DIAG_SS_BASE-2)
  270. #define SQL_DIAG_SS_PROCNAME    (SQL_DIAG_SS_BASE-3)
  271. #define SQL_DIAG_SS_LINE        (SQL_DIAG_SS_BASE-4)
  272.  
  273.  
  274. //    SQLGetDiagField/SQL_DIAG_DYNAMIC_FUNCTION_CODE driver specific defines.
  275. //    Microsoft has -200 thru -299 reserved for Microsoft SQL Server driver usage.
  276.  
  277. #define SQL_DIAG_DFC_SS_BASE                    (-200)
  278. #define SQL_DIAG_DFC_SS_ALTER_DATABASE            (SQL_DIAG_DFC_SS_BASE-0)
  279. #define SQL_DIAG_DFC_SS_CHECKPOINT                (SQL_DIAG_DFC_SS_BASE-1)
  280. #define SQL_DIAG_DFC_SS_CONDITION                (SQL_DIAG_DFC_SS_BASE-2)
  281. #define SQL_DIAG_DFC_SS_CREATE_DATABASE         (SQL_DIAG_DFC_SS_BASE-3)
  282. #define SQL_DIAG_DFC_SS_CREATE_DEFAULT            (SQL_DIAG_DFC_SS_BASE-4)
  283. #define SQL_DIAG_DFC_SS_CREATE_PROCEDURE        (SQL_DIAG_DFC_SS_BASE-5)
  284. #define SQL_DIAG_DFC_SS_CREATE_RULE             (SQL_DIAG_DFC_SS_BASE-6)
  285. #define SQL_DIAG_DFC_SS_CREATE_TRIGGER            (SQL_DIAG_DFC_SS_BASE-7)
  286. #define SQL_DIAG_DFC_SS_CURSOR_DECLARE            (SQL_DIAG_DFC_SS_BASE-8)
  287. #define SQL_DIAG_DFC_SS_CURSOR_OPEN             (SQL_DIAG_DFC_SS_BASE-9)
  288. #define SQL_DIAG_DFC_SS_CURSOR_FETCH            (SQL_DIAG_DFC_SS_BASE-10)
  289. #define SQL_DIAG_DFC_SS_CURSOR_CLOSE            (SQL_DIAG_DFC_SS_BASE-11)
  290. #define SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR        (SQL_DIAG_DFC_SS_BASE-12)
  291. #define SQL_DIAG_DFC_SS_DBCC                    (SQL_DIAG_DFC_SS_BASE-13)
  292. #define SQL_DIAG_DFC_SS_DISK                    (SQL_DIAG_DFC_SS_BASE-14)
  293. #define SQL_DIAG_DFC_SS_DROP_DATABASE            (SQL_DIAG_DFC_SS_BASE-15)
  294. #define SQL_DIAG_DFC_SS_DROP_DEFAULT            (SQL_DIAG_DFC_SS_BASE-16)
  295. #define SQL_DIAG_DFC_SS_DROP_PROCEDURE            (SQL_DIAG_DFC_SS_BASE-17)
  296. #define SQL_DIAG_DFC_SS_DROP_RULE                (SQL_DIAG_DFC_SS_BASE-18)
  297. #define SQL_DIAG_DFC_SS_DROP_TRIGGER            (SQL_DIAG_DFC_SS_BASE-19)
  298. #define SQL_DIAG_DFC_SS_DUMP_DATABASE            (SQL_DIAG_DFC_SS_BASE-20)
  299. #define SQL_DIAG_DFC_SS_DUMP_TABLE                (SQL_DIAG_DFC_SS_BASE-21)
  300. #define SQL_DIAG_DFC_SS_DUMP_TRANSACTION        (SQL_DIAG_DFC_SS_BASE-22)
  301. #define SQL_DIAG_DFC_SS_GOTO                    (SQL_DIAG_DFC_SS_BASE-23)
  302. #define SQL_DIAG_DFC_SS_INSERT_BULK             (SQL_DIAG_DFC_SS_BASE-24)
  303. #define SQL_DIAG_DFC_SS_KILL                    (SQL_DIAG_DFC_SS_BASE-25)
  304. #define SQL_DIAG_DFC_SS_LOAD_DATABASE            (SQL_DIAG_DFC_SS_BASE-26)
  305. #define SQL_DIAG_DFC_SS_LOAD_HEADERONLY         (SQL_DIAG_DFC_SS_BASE-27)
  306. #define SQL_DIAG_DFC_SS_LOAD_TABLE                (SQL_DIAG_DFC_SS_BASE-28)
  307. #define SQL_DIAG_DFC_SS_LOAD_TRANSACTION        (SQL_DIAG_DFC_SS_BASE-29)
  308. #define SQL_DIAG_DFC_SS_PRINT                    (SQL_DIAG_DFC_SS_BASE-30)
  309. #define SQL_DIAG_DFC_SS_RAISERROR                (SQL_DIAG_DFC_SS_BASE-31)
  310. #define SQL_DIAG_DFC_SS_READTEXT                (SQL_DIAG_DFC_SS_BASE-32)
  311. #define SQL_DIAG_DFC_SS_RECONFIGURE             (SQL_DIAG_DFC_SS_BASE-33)
  312. #define SQL_DIAG_DFC_SS_RETURN                    (SQL_DIAG_DFC_SS_BASE-34)
  313. #define SQL_DIAG_DFC_SS_SELECT_INTO             (SQL_DIAG_DFC_SS_BASE-35)
  314. #define SQL_DIAG_DFC_SS_SET                     (SQL_DIAG_DFC_SS_BASE-36)
  315. #define SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT     (SQL_DIAG_DFC_SS_BASE-37)
  316. #define SQL_DIAG_DFC_SS_SET_ROW_COUNT            (SQL_DIAG_DFC_SS_BASE-38)
  317. #define SQL_DIAG_DFC_SS_SET_STATISTICS            (SQL_DIAG_DFC_SS_BASE-39)
  318. #define SQL_DIAG_DFC_SS_SET_TEXTSIZE            (SQL_DIAG_DFC_SS_BASE-40)
  319. #define SQL_DIAG_DFC_SS_SETUSER                 (SQL_DIAG_DFC_SS_BASE-41)
  320. #define SQL_DIAG_DFC_SS_SHUTDOWN                (SQL_DIAG_DFC_SS_BASE-42)
  321. #define SQL_DIAG_DFC_SS_TRANS_BEGIN             (SQL_DIAG_DFC_SS_BASE-43)
  322. #define SQL_DIAG_DFC_SS_TRANS_COMMIT            (SQL_DIAG_DFC_SS_BASE-44)
  323. #define SQL_DIAG_DFC_SS_TRANS_PREPARE            (SQL_DIAG_DFC_SS_BASE-45)
  324. #define SQL_DIAG_DFC_SS_TRANS_ROLLBACK            (SQL_DIAG_DFC_SS_BASE-46)
  325. #define SQL_DIAG_DFC_SS_TRANS_SAVE                (SQL_DIAG_DFC_SS_BASE-47)
  326. #define SQL_DIAG_DFC_SS_TRUNCATE_TABLE            (SQL_DIAG_DFC_SS_BASE-48)
  327. #define SQL_DIAG_DFC_SS_UPDATE_STATISTICS        (SQL_DIAG_DFC_SS_BASE-49)
  328. #define SQL_DIAG_DFC_SS_UPDATETEXT                (SQL_DIAG_DFC_SS_BASE-50)
  329. #define SQL_DIAG_DFC_SS_USE                     (SQL_DIAG_DFC_SS_BASE-51)
  330. #define SQL_DIAG_DFC_SS_WAITFOR                 (SQL_DIAG_DFC_SS_BASE-52)
  331. #define SQL_DIAG_DFC_SS_WRITETEXT                (SQL_DIAG_DFC_SS_BASE-53)
  332. #define SQL_DIAG_DFC_SS_DENY                    (SQL_DIAG_DFC_SS_BASE-54)
  333. #define SQL_DIAG_DFC_SS_SET_XCTLVL                (SQL_DIAG_DFC_SS_BASE-55)
  334.  
  335. //    Severity codes for SQL_DIAG_SS_SEVERITY
  336. #define    EX_ANY            0
  337. #define    EX_INFO            10
  338. #define EX_MAXISEVERITY EX_INFO
  339. #define    EX_MISSING        11
  340. #define    EX_TYPE            12
  341. #define    EX_DEADLOCK        13
  342. #define    EX_PERMIT        14
  343. #define    EX_SYNTAX        15
  344. #define    EX_USER            16
  345. #define    EX_RESOURCE        17
  346. #define    EX_INTOK        18
  347. #define    MAXUSEVERITY    EX_INTOK
  348. #define    EX_LIMIT        19
  349. #define    EX_CMDFATAL        20
  350. #define    MINFATALERR        EX_CMDFATAL
  351. #define    EX_DBFATAL        21
  352. #define    EX_TABCORRUPT    22
  353. #define    EX_DBCORRUPT    23
  354. #define    EX_HARDWARE        24
  355. #define    EX_CONTROL        25
  356.  
  357. //    Internal server datatypes - used when binding to SQL_C_BINARY
  358. #ifndef MAXNUMERICLEN    // Resolve ODS/DBLib conflicts
  359. // DB-Library datatypes
  360. #define DBMAXCHAR        (8000+1)    // Max length of DBVARBINARY and DBVARCHAR, etc. +1 for zero byte
  361. #define MAXNAME         (SQL_MAX_SQLSERVERNAME+1)    // Max server identifier length including zero byte
  362.  
  363. #ifdef UNICODE
  364. typedef wchar_t            DBCHAR;
  365. #else
  366. typedef char            DBCHAR;
  367. #endif
  368. typedef unsigned char   DBBINARY;
  369. typedef unsigned char   DBTINYINT;
  370. typedef short           DBSMALLINT;
  371. typedef unsigned short  DBUSMALLINT;
  372. typedef double          DBFLT8;
  373. typedef unsigned char   DBBIT;
  374. typedef unsigned char   DBBOOL;
  375. typedef float           DBFLT4;
  376.  
  377. typedef DBFLT4 DBREAL;
  378. typedef UINT   DBUBOOL;
  379.  
  380. typedef struct dbvarychar
  381. {
  382.     DBSMALLINT  len;
  383.     DBCHAR      str[DBMAXCHAR];
  384. } DBVARYCHAR;
  385.  
  386. typedef struct dbvarybin
  387. {
  388.     DBSMALLINT  len;
  389.     BYTE        array[DBMAXCHAR];
  390. } DBVARYBIN;
  391.  
  392. typedef struct dbmoney
  393. {                        // Internal representation of MONEY data type
  394.     LONG  mnyhigh;        // Money value *10,000 (High 32 bits/signed)
  395.     ULONG mnylow;        // Money value *10,000 (Low 32 bits/unsigned)
  396. } DBMONEY;
  397.  
  398. typedef struct dbdatetime
  399. {                        // Internal representation of DATETIME data type
  400.     LONG  dtdays;        // No of days since Jan-1-1900 (maybe negative)
  401.     ULONG dttime;        // No. of 300 hundredths of a second since midnight
  402. } DBDATETIME;
  403.  
  404. typedef struct dbdatetime4
  405. {                        // Internal representation of SMALLDATETIME data type
  406.     USHORT numdays;     // No of days since Jan-1-1900
  407.     USHORT nummins;     // No. of minutes since midnight
  408. } DBDATETIM4;
  409.  
  410. typedef LONG DBMONEY4;    // Internal representation of SMALLMONEY data type
  411.                         // Money value *10,000
  412.  
  413. #define DBNUM_PREC_TYPE BYTE
  414. #define DBNUM_SCALE_TYPE BYTE
  415. #define DBNUM_VAL_TYPE BYTE
  416.  
  417. #if (ODBCVER < 0x0300)
  418. #define MAXNUMERICLEN 16
  419.  
  420. typedef struct dbnumeric
  421. {                            // Internal representation of NUMERIC data type
  422.     DBNUM_PREC_TYPE   precision;            // Precision
  423.     DBNUM_SCALE_TYPE  scale;                // Scale
  424.     BYTE              sign;                 // Sign (1 if positive, 0 if negative)
  425.     DBNUM_VAL_TYPE      val[MAXNUMERICLEN];    // Value
  426. } DBNUMERIC;
  427. typedef DBNUMERIC DBDECIMAL;// Internal representation of DECIMAL data type
  428. #else    //    Use ODBC 3.0 definitions since same as DBLib
  429. #define MAXNUMERICLEN SQL_MAX_NUMERIC_LEN
  430. typedef SQL_NUMERIC_STRUCT DBNUMERIC;
  431. typedef SQL_NUMERIC_STRUCT DBDECIMAL;
  432. #endif
  433.  
  434. #endif //    MAXNUMERICLEN
  435.  
  436. #ifndef INT
  437. typedef int INT;
  438. typedef long            DBINT;
  439. typedef const LPBYTE    LPCBYTE;
  440. typedef DBINT *            LPDBINT;
  441. #endif
  442.  
  443. /*****************************************************************
  444.  This struct is a global used for 
  445.  gathering statistical data on the driver.
  446.  Access to this structure is controlled via the
  447.  pStatCrit;
  448. ******************************************************************/
  449.  
  450. typedef struct sqlperf
  451. {
  452.     // Application Profile Statistics
  453.     DWORD TimerResolution;
  454.     DWORD SQLidu;
  455.     DWORD SQLiduRows;
  456.     DWORD SQLSelects;
  457.     DWORD SQLSelectRows;
  458.     DWORD Transactions;
  459.     DWORD SQLPrepares;
  460.     DWORD ExecDirects;
  461.     DWORD SQLExecutes;
  462.     DWORD CursorOpens;
  463.     DWORD CursorSize;
  464.     DWORD CursorUsed;
  465.     LDOUBLE PercentCursorUsed;
  466.     LDOUBLE AvgFetchTime;
  467.     LDOUBLE AvgCursorSize; 
  468.     LDOUBLE AvgCursorUsed;
  469.     DWORD SQLFetchTime;
  470.     DWORD SQLFetchCount;
  471.     DWORD CurrentStmtCount;
  472.     DWORD MaxOpenStmt;
  473.     DWORD SumOpenStmt;
  474.     
  475.     // Connection Statistics
  476.     DWORD CurrentConnectionCount;
  477.     DWORD MaxConnectionsOpened;
  478.     DWORD SumConnectionsOpened;
  479.     DWORD SumConnectiontime;
  480.     LDOUBLE AvgTimeOpened;
  481.  
  482.     // Network Statistics
  483.     DWORD ServerRndTrips;
  484.     DWORD BuffersSent;
  485.     DWORD BuffersRec;
  486.     DWORD BytesSent;
  487.     DWORD BytesRec;
  488.  
  489.     // Time Statistics;
  490.     DWORD msExecutionTime;
  491.     DWORD msNetWorkServerTime;
  492.  
  493. }     SQLPERF;
  494.  
  495. // The following are options for SQL_COPT_SS_PERF_DATA and SQL_COPT_SS_PERF_QUERY
  496. #define SQL_PERF_START    1            // Starts the driver sampling performance data.
  497. #define SQL_PERF_STOP    2            // Stops the counters from sampling performance data.
  498.  
  499. // The following are defines for SQL_COPT_SS_PERF_DATA_LOG
  500. #define SQL_SS_DL_DEFAULT    TEXT("C:\\STATS.LOG")
  501.  
  502. // The following are defines for SQL_COPT_SS_PERF_QUERY_LOG
  503. #define SQL_SS_QL_DEFAULT    TEXT("C:\\QUERY.LOG")
  504.  
  505. // The following are defines for SQL_COPT_SS_PERF_QUERY_INTERVAL
  506. #define SQL_SS_QI_DEFAULT    30000    //    30,000 milliseconds
  507.  
  508. //    ODBC BCP prototypes and defines
  509.  
  510. //    Return codes
  511. #define SUCCEED         1
  512. #define FAIL            0
  513. #define SUCCEED_ABORT    2
  514. #define SUCCEED_ASYNC    3
  515.  
  516. //    Transfer directions
  517. #define DB_IN            1    // Transfer from client to server
  518. #define DB_OUT            2    // Transfer from server to client
  519.  
  520. //    bcp_control option
  521. #define BCPMAXERRS        1    // Sets max errors allowed
  522. #define BCPFIRST        2    // Sets first row to be copied out
  523. #define BCPLAST         3    // Sets number of rows to be copied out
  524. #define BCPBATCH        4    // Sets input batch size
  525. #define BCPKEEPNULLS    5    // Sets to insert NULLs for empty input values
  526. #define BCPABORT        6    // Sets to have bcpexec return SUCCEED_ABORT
  527. #define BCPODBC         7    // Sets ODBC canonical character output
  528. #define BCPKEEPIDENTITY    8    // Sets IDENTITY_INSERT on
  529. #define BCP6xFILEFMT    9    // Sets 6x file format on
  530. #define BCPHINTSA        10    // Sets server BCP hints (ANSI string)
  531. #define BCPHINTSW        11    // Sets server BCP hints (UNICODE string)
  532. #define BCPFILECP        12    // Sets clients code page for the file
  533. #define BCPUNICODEFILE    13    // Sets that the file contains unicode header
  534.  
  535. //    BCPFILECP values
  536. //    Any valid code page that is installed on the client can be passed plus:
  537. #define BCPFILECP_ACP    0    // Data in file is in Windows code page
  538. #define BCPFILECP_OEMCP    1    // Data in file is in OEM code page (default)
  539. #define BCPFILECP_RAW    (-1)// Data in file is in Server code page (no conversion)
  540.  
  541. //    bcp_collen definition
  542. #define SQL_VARLEN_DATA (-10)    //    Use default length for column
  543.  
  544. // BCP functions
  545. DBINT    SQL_API bcp_batch (HDBC);
  546. RETCODE SQL_API bcp_bind (HDBC, LPCBYTE, INT, DBINT, LPCBYTE, INT, INT, INT);
  547. RETCODE SQL_API bcp_colfmt (HDBC, INT, BYTE, INT, DBINT, LPCBYTE, INT, INT);
  548. RETCODE SQL_API bcp_collen (HDBC, DBINT, INT);
  549. RETCODE SQL_API bcp_colptr (HDBC, LPCBYTE, INT);
  550. RETCODE SQL_API bcp_columns (HDBC, INT);
  551. RETCODE SQL_API bcp_control (HDBC, INT, void *);
  552. DBINT    SQL_API bcp_done (HDBC);
  553. RETCODE SQL_API bcp_exec (HDBC, LPDBINT);
  554. RETCODE SQL_API bcp_initA (HDBC, LPCSTR, LPCSTR, LPCSTR, INT);
  555. RETCODE SQL_API bcp_initW (HDBC, LPCWSTR, LPCWSTR, LPCWSTR, INT);
  556. RETCODE SQL_API bcp_moretext (HDBC, DBINT, LPCBYTE);
  557. RETCODE SQL_API bcp_readfmtA (HDBC, LPCSTR);
  558. RETCODE SQL_API bcp_readfmtW (HDBC, LPCWSTR);
  559. RETCODE SQL_API bcp_sendrow (HDBC);
  560. RETCODE SQL_API bcp_writefmtA (HDBC, LPCSTR);
  561. RETCODE SQL_API bcp_writefmtW (HDBC, LPCWSTR);
  562. CHAR *    SQL_API dbprtypeA (INT);
  563. WCHAR * SQL_API dbprtypeW (INT);
  564.  
  565. #ifdef UNICODE
  566. #define bcp_init        bcp_initW
  567. #define bcp_readfmt        bcp_readfmtW
  568. #define bcp_writefmt    bcp_writefmtW
  569. #define dbprtype        dbprtypeW
  570. #define BCPHINTS        BCPHINTSW
  571.  
  572. #else
  573. #define bcp_init        bcp_initA
  574. #define bcp_readfmt        bcp_readfmtA
  575. #define bcp_writefmt    bcp_writefmtA
  576. #define dbprtype        dbprtypeA
  577. #define BCPHINTS        BCPHINTSA
  578. #endif
  579.  
  580. //    SQL Server catalog extensions for distributed queries
  581. SQLRETURN SQL_API SQLLinkedServers (SQLHSTMT);
  582. SQLRETURN SQL_API SQLLinkedCatalogsA (SQLHSTMT, LPCSTR, SWORD);
  583. SQLRETURN SQL_API SQLLinkedCatalogsW (SQLHSTMT, LPCWSTR, SWORD);
  584. #ifdef UNICODE
  585. #define SQLLinkedCatalogs    SQLLinkedCatalogsW
  586. #else
  587. #define SQLLinkedCatalogs    SQLLinkedCatalogsA
  588. #endif
  589.  
  590.  
  591. //    The following options have been deprecated
  592.  
  593. #define SQL_FAST_CONNECT                (SQL_COPT_SS_BASE+0)
  594. //    Defines for use with SQL_FAST_CONNECT - only useable before connecting
  595. #define SQL_FC_OFF        0L            //    Fast connect is off
  596. #define SQL_FC_ON        1L            //    Fast connect is on
  597. #define SQL_FC_DEFAULT    SQL_FC_OFF
  598. #define SQL_COPT_SS_ANSI_OEM            (SQL_COPT_SS_BASE+6)
  599. #define SQL_AO_OFF                        0L
  600. #define SQL_AO_ON                        1L
  601. #define SQL_AO_DEFAULT                    SQL_AO_OFF
  602.  
  603. //    Define old names
  604. #define SQL_REMOTE_PWD                    SQL_COPT_SS_REMOTE_PWD
  605. #define SQL_USE_PROCEDURE_FOR_PREPARE    SQL_COPT_SS_USE_PROC_FOR_PREP
  606. #define SQL_INTEGRATED_SECURITY         SQL_COPT_SS_INTEGRATED_SECURITY
  607. #define SQL_PRESERVE_CURSORS            SQL_COPT_SS_PRESERVE_CURSORS
  608. #define SQL_TEXTPTR_LOGGING             SQL_SOPT_SS_TEXTPTR_LOGGING
  609. #define SQL_CA_SS_BASE_COLUMN_NAME        SQL_DESC_BASE_COLUMN_NAME
  610. #define SQLDECIMALN                        0x6a
  611. #define SQLNUMERICN                     0x6c
  612.  
  613. #ifdef __cplusplus
  614. }                                    /* End of extern "C" { */
  615. #endif  /* __cplusplus */
  616. #endif
  617.  
  618. //    End of odbcss.h
  619.