OdbcSS.H
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:28k
源码类别:

模拟服务器

开发平台:

C/C++

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