home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / odbcss.h < prev    next >
Text File  |  1998-04-25  |  18KB  |  442 lines

  1. /*
  2. ** ODBCSS.H - This is the application include file for the
  3. ** SQL Server driver specific defines.
  4. **
  5. ** (C) Copyright 1993-1996 By Microsoft Corp.
  6. **
  7. */
  8.  
  9. //    SQLSetConnectOption/SQLSetStmtOption driver specific defines.
  10. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  11.  
  12. //    Connection Options
  13. #define SQL_COPT_SS_BASE                1200
  14. #define SQL_REMOTE_PWD                    (SQL_COPT_SS_BASE+1) // dbrpwset SQLSetConnectOption only
  15. #define SQL_USE_PROCEDURE_FOR_PREPARE    (SQL_COPT_SS_BASE+2) // Use create proc for SQLPrepare
  16. #define SQL_INTEGRATED_SECURITY         (SQL_COPT_SS_BASE+3) // Force integrated security on login
  17. #define SQL_PRESERVE_CURSORS            (SQL_COPT_SS_BASE+4) // Preserve server cursors after SQLTransact
  18. #define SQL_COPT_SS_USER_DATA            (SQL_COPT_SS_BASE+5) // dbgetuserdata/dbsetuserdata
  19. #define SQL_COPT_SS_ANSI_OEM            (SQL_COPT_SS_BASE+6) // dbsetopt/DBANSItoOEM/DBOEMtoANSI
  20. #define SQL_COPT_SS_CONNECTION_DEAD        (SQL_COPT_SS_BASE+9) // dbdead SQLGetConnectOption only
  21. #define SQL_COPT_SS_FALLBACK_CONNECT    (SQL_COPT_SS_BASE+10) // Enables FallBack connections
  22. #define SQL_COPT_SS_PERF_DATA            (SQL_COPT_SS_BASE+11) // Used to access SQL Server ODBC driver performance data
  23. #define SQL_COPT_SS_PERF_DATA_LOG        (SQL_COPT_SS_BASE+12) // Used to set the logfile name for the Performance data
  24. #define SQL_COPT_SS_PERF_QUERY_INTERVAL (SQL_COPT_SS_BASE+13) // Used to set the query logging threshold in milliseconds.
  25. #define SQL_COPT_SS_PERF_QUERY_LOG        (SQL_COPT_SS_BASE+14) // Used to set the logfile name for saving queryies.
  26. #define SQL_COPT_SS_PERF_QUERY            (SQL_COPT_SS_BASE+15) // Used to start and stop query logging.
  27. #define SQL_COPT_SS_PERF_DATA_LOG_NOW    (SQL_COPT_SS_BASE+16) // Used to make a statistics log entry to disk.
  28. //    The following two options have been added to enable perf data option to be set during browse connect.
  29. #define SQL_COPT_SS_PERF_QUERY_AUTO_LOG (SQL_COPT_SS_BASE+17) // Open query log file and start logging all queries.
  30. #define SQL_COPT_SS_PERF_DATA_AUTO_LOG    (SQL_COPT_SS_BASE+18) // Open perf stats log file and start logging driver stats.
  31. #define SQL_COPT_SS_BCP                    (SQL_COPT_SS_BASE+19) // Allow BCP usage on connection
  32.  
  33. #define SQL_COPT_SS_MAX_USED            SQL_COPT_SS_BCP
  34.  
  35. //    Statement Options
  36. #define SQL_SOPT_SS_BASE                1225
  37. #define SQL_TEXTPTR_LOGGING             (SQL_SOPT_SS_BASE+0) // Text pointer logging
  38. #define SQL_SOPT_SS_CURRENT_COMMAND        (SQL_SOPT_SS_BASE+1) // dbcurcmd SQLGetStmtOption only
  39. #define SQL_SOPT_SS_HIDDEN_COLUMNS        (SQL_SOPT_SS_BASE+2) // Expose FOR BROWSE hidden columns
  40. #define SQL_SOPT_SS_MAX_USED            SQL_SOPT_SS_HIDDEN_COLUMNS
  41.  
  42.  
  43. //    Defines for use with SQL_USE_PROCEDURE_FOR_PREPARE
  44. #define SQL_UP_OFF        0L            //    Procedures won't be used for prepare
  45. #define SQL_UP_ON        1L            //    Procedures will be used for prepare
  46. #define SQL_UP_ON_DROP    2L            //    Temp procedures will be explicitly dropped
  47. #define SQL_UP_DEFAULT    SQL_UP_ON
  48.  
  49. //    Defines for use with SQL_INTEGRATED_SECURITY - only useable before connecting
  50. #define SQL_IS_OFF        0L            //    Integrated security isn't used
  51. #define SQL_IS_ON        1L            //    Integrated security is used
  52. #define SQL_IS_DEFAULT    SQL_IS_OFF
  53.  
  54. //    Defines for use with SQL_PRESERVE_CURSORS
  55. #define SQL_PC_OFF        0L            //    Cursors are closed on SQLTransact
  56. #define SQL_PC_ON        1L            //    Cursors remain open on SQLTransact
  57. #define SQL_PC_DEFAULT    SQL_PC_OFF
  58.  
  59. //    Defines for use with SQL_COPT_SS_USER_DATA
  60. #define SQL_UD_NOTSET    NULL            //    No user data pointer set
  61.  
  62. //    Defines for use with SSQL_COPT_SS_ANSI_OEMQL_ANSI_OEM
  63. #define SQL_AO_OFF        0L            //    ANSI/OEM translation is not performed
  64. #define SQL_AO_ON        1L            //    ANSI/OEM translation is performed
  65. #define SQL_AO_DEFAULT    SQL_AO_OFF    //    Default unless DSN OEM/ANSI checkbox is checked
  66.  
  67. //    Defines for use with SQL_COPT_SS_CONNECTION_DEAD
  68. #define SQL_CD_TRUE        1L            //    Connection is closed/dead
  69. #define SQL_CD_FALSE    0L            //    Connection is open/available
  70.  
  71. //    Defines for use with SQL_COPT_SS_FALLBACK_CONNECT
  72. #define SQL_FB_OFF        0L            //    FallBack connections are disabled
  73. #define SQL_FB_ON        1L            //    FallBack connections are enabled
  74. #define SQL_FB_DEFAULT    SQL_FB_OFF
  75.  
  76. //    Defines for use with SQL_ENLIST_IN_DTC
  77. #define SQL_DTC_DONE    0L            //    Delimits end of DTC transaction
  78.  
  79. //    Defines for use with SQL_COPT_SS_BCP
  80. #define SQL_BCP_OFF        0L            //    BCP is not allowed on connection
  81. #define SQL_BCP_ON        1L            //    BCP is allowed on connection
  82. #define SQL_BCP_DEFAULT    SQL_BCP_OFF
  83.  
  84.  
  85. //    Defines for use with SQL_TEXTPTR_LOGGING
  86. #define SQL_TL_OFF        0L            //    No logging on text pointer ops
  87. #define SQL_TL_ON        1L            //    Logging occurs on text pointer ops
  88. #define SQL_TL_DEFAULT    SQL_TL_ON
  89.  
  90. //    Defines for use with SQL_SOPT_SS_HIDDEN_COLUMNS
  91. #define SQL_HC_OFF        0L          //  FOR BROWSE columns are hidden
  92. #define SQL_HC_ON        1L          //  FOR BROWSE columns are exposed
  93. #define SQL_HC_DEFAULT    SQL_HC_OFF
  94.  
  95.  
  96. //    SQLColAttributes driver specific defines.
  97. //    SQLSet/GetDescField driver specific defines.
  98. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  99.  
  100. #define SQL_CA_SS_BASE                1200
  101. #define SQL_CA_SS_COLUMN_SSTYPE        (SQL_CA_SS_BASE+0)    //    dbcoltype/dbaltcoltype
  102. #define SQL_CA_SS_COLUMN_UTYPE        (SQL_CA_SS_BASE+1)    //    dbcolutype/dbaltcolutype
  103. #define SQL_CA_SS_NUM_ORDERS        (SQL_CA_SS_BASE+2)    //    dbnumorders
  104. #define SQL_CA_SS_COLUMN_ORDER        (SQL_CA_SS_BASE+3)    //    dbcolorder
  105. #define SQL_CA_SS_COLUMN_VARYLEN    (SQL_CA_SS_BASE+4)    //    dbvarylen
  106. #define SQL_CA_SS_NUM_COMPUTES        (SQL_CA_SS_BASE+5)    //    dbnumcompute
  107. #define SQL_CA_SS_COMPUTE_ID        (SQL_CA_SS_BASE+6)    //    dbnextrow status return
  108. #define SQL_CA_SS_COMPUTE_BYLIST    (SQL_CA_SS_BASE+7)    //    dbbylist
  109. #define SQL_CA_SS_COLUMN_ID            (SQL_CA_SS_BASE+8)    //    dbaltcolid
  110. #define SQL_CA_SS_COLUMN_OP            (SQL_CA_SS_BASE+9)    //    dbaltcolop
  111. #define SQL_CA_SS_COLUMN_SIZE        (SQL_CA_SS_BASE+10)    //    dbcollen
  112. #define SQL_CA_SS_COLUMN_HIDDEN        (SQL_CA_SS_BASE+11) //    Column is hidden (FOR BROWSE)
  113. #define SQL_CA_SS_COLUMN_KEY        (SQL_CA_SS_BASE+12) //    Column is key column (FOR BROWSE)
  114. #define SQL_CA_SS_MAX_USED            SQL_CA_SS_COLUMN_KEY
  115.  
  116. // SQL Server Data Type Tokens. Returned by SQLColAttributes/SQL_CA_SS_COLUMN_SSTYPE.
  117. #define SQLTEXT             0x23
  118. #define SQLVARBINARY        0x25
  119. #define SQLINTN             0x26
  120. #define SQLVARCHAR            0x27
  121. #define SQLBINARY            0x2d
  122. #define SQLIMAGE            0x22
  123. #define SQLCHARACTER        0x2f
  124. #define SQLINT1             0x30
  125. #define SQLBIT                0x32
  126. #define SQLINT2             0x34
  127. #define SQLINT4             0x38
  128. #define SQLMONEY            0x3c
  129. #define SQLDATETIME         0x3d
  130. #define SQLFLT8             0x3e
  131. #define SQLFLTN             0x6d
  132. #define SQLMONEYN            0x6e
  133. #define SQLDATETIMN         0x6f
  134. #define SQLFLT4             0x3b
  135. #define SQLMONEY4            0x7a
  136. #define SQLDATETIM4         0x3a
  137. #define SQLDECIMAL            0x37
  138. #define SQLDECIMALN            0x6a
  139. #define SQLNUMERIC            0x3f
  140. #define SQLNUMERICN         0x6c
  141.  
  142. //    User Data Type definitions. Returned by SQLColAttributes/SQL_CA_SS_COLUMN_UTYPE.
  143. #define SQLudtTEXT            19
  144. #define SQLudtVARBINARY     4
  145. #define SQLudtINTN            13
  146. #define SQLudtVARCHAR        2
  147. #define SQLudtBINARY        3
  148. #define SQLudtIMAGE         20
  149. #define SQLudtCHAR            1
  150. #define SQLudtINT1            5
  151. #define SQLudtBIT            16
  152. #define SQLudtINT2            6
  153. #define SQLudtINT4            7
  154. #define SQLudtMONEY         11
  155. #define SQLudtDATETIME        12
  156. #define SQLudtFLT8            8
  157. #define SQLudtFLTN            14
  158. #define SQLudtMONEYN        17
  159. #define SQLudtDATETIMN        15
  160. #define SQLudtSYSNAME        18
  161. #define SQLudtTIMESTAMP     80
  162. #define SQLudtFLT4            23
  163. #define SQLudtMONEY4        21
  164. #define SQLudtDATETIM4        22
  165. #define SQLudtDECML            24
  166. #define SQLudtDECMLN        26
  167. #define SQLudtNUM            10
  168. #define SQLudtNUMN            25
  169. #define MIN_USER_DATATYPE    100
  170.  
  171. // aggregate operator types (returned by SQLColAttributes/SQL_CA_SS_COLUMN_OP)
  172. #define SQLAOPCNT    0x4b
  173. #define SQLAOPSUM    0x4d
  174. #define SQLAOPAVG    0x4f
  175. #define SQLAOPMIN    0x51
  176. #define SQLAOPMAX    0x52
  177. #define SQLAOPANY    0x53
  178. #define SQLAOPNOOP    0x56
  179.  
  180.  
  181. //    SQLGetInfo driver specific defines.
  182. //    Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server driver usage.
  183.  
  184. #define SQL_INFO_SS_FIRST        1200
  185. #define SQL_INFO_SS_NETLIB_NAME (SQL_INFO_SS_FIRST+0) //  dbprocinfo
  186. #define SQL_INFO_SS_MAX_USED    SQL_INFO_SS_NETLIB_NAME
  187.  
  188.  
  189. //    SQLGetDiagField driver specific defines.
  190. //    Microsoft has -1150 thru -1199 reserved for Microsoft SQL Server driver usage.
  191.  
  192. #define SQL_DIAG_SS_BASE        (-1150)
  193. #define SQL_DIAG_SS_MSGSTATE    (SQL_DIAG_SS_BASE)
  194. #define SQL_DIAG_SS_SEVERITY    (SQL_DIAG_SS_BASE-1)
  195. #define SQL_DIAG_SS_SRVNAME     (SQL_DIAG_SS_BASE-2)
  196. #define SQL_DIAG_SS_PROCNAME    (SQL_DIAG_SS_BASE-3)
  197. #define SQL_DIAG_SS_LINE        (SQL_DIAG_SS_BASE-4)
  198.  
  199.  
  200. //    SQLGetDiagField/SQL_DIAG_DYNAMIC_FUNCTION_CODE driver specific defines.
  201. //    Microsoft has -200 thru -299 reserved for Microsoft SQL Server driver usage.
  202.  
  203. #define SQL_DIAG_DFC_SS_BASE                    (-200)
  204. #define SQL_DIAG_DFC_SS_ALTER_DATABASE            (SQL_DIAG_DFC_SS_BASE-0)
  205. #define SQL_DIAG_DFC_SS_CHECKPOINT                (SQL_DIAG_DFC_SS_BASE-1)
  206. #define SQL_DIAG_DFC_SS_CONDITION                (SQL_DIAG_DFC_SS_BASE-2)
  207. #define SQL_DIAG_DFC_SS_CREATE_DATABASE         (SQL_DIAG_DFC_SS_BASE-3)
  208. #define SQL_DIAG_DFC_SS_CREATE_DEFAULT            (SQL_DIAG_DFC_SS_BASE-4)
  209. #define SQL_DIAG_DFC_SS_CREATE_PROCEDURE        (SQL_DIAG_DFC_SS_BASE-5)
  210. #define SQL_DIAG_DFC_SS_CREATE_RULE             (SQL_DIAG_DFC_SS_BASE-6)
  211. #define SQL_DIAG_DFC_SS_CREATE_TRIGGER            (SQL_DIAG_DFC_SS_BASE-7)
  212. #define SQL_DIAG_DFC_SS_CURSOR_DECLARE            (SQL_DIAG_DFC_SS_BASE-8)
  213. #define SQL_DIAG_DFC_SS_CURSOR_OPEN             (SQL_DIAG_DFC_SS_BASE-9)
  214. #define SQL_DIAG_DFC_SS_CURSOR_FETCH            (SQL_DIAG_DFC_SS_BASE-10)
  215. #define SQL_DIAG_DFC_SS_CURSOR_CLOSE            (SQL_DIAG_DFC_SS_BASE-11)
  216. #define SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR        (SQL_DIAG_DFC_SS_BASE-12)
  217. #define SQL_DIAG_DFC_SS_DBCC                    (SQL_DIAG_DFC_SS_BASE-13)
  218. #define SQL_DIAG_DFC_SS_DISK                    (SQL_DIAG_DFC_SS_BASE-14)
  219. #define SQL_DIAG_DFC_SS_DROP_DATABASE            (SQL_DIAG_DFC_SS_BASE-15)
  220. #define SQL_DIAG_DFC_SS_DROP_DEFAULT            (SQL_DIAG_DFC_SS_BASE-16)
  221. #define SQL_DIAG_DFC_SS_DROP_PROCEDURE            (SQL_DIAG_DFC_SS_BASE-17)
  222. #define SQL_DIAG_DFC_SS_DROP_RULE                (SQL_DIAG_DFC_SS_BASE-18)
  223. #define SQL_DIAG_DFC_SS_DROP_SCHEMA             (SQL_DIAG_DFC_SS_BASE-19)
  224. #define SQL_DIAG_DFC_SS_DROP_TRIGGER            (SQL_DIAG_DFC_SS_BASE-20)
  225. #define SQL_DIAG_DFC_SS_DUMP_DATABASE            (SQL_DIAG_DFC_SS_BASE-21)
  226. #define SQL_DIAG_DFC_SS_DUMP_TABLE                (SQL_DIAG_DFC_SS_BASE-22)
  227. #define SQL_DIAG_DFC_SS_DUMP_TRANSACTION        (SQL_DIAG_DFC_SS_BASE-23)
  228. #define SQL_DIAG_DFC_SS_GOTO                    (SQL_DIAG_DFC_SS_BASE-24)
  229. #define SQL_DIAG_DFC_SS_INSERT_BULK             (SQL_DIAG_DFC_SS_BASE-25)
  230. #define SQL_DIAG_DFC_SS_KILL                    (SQL_DIAG_DFC_SS_BASE-26)
  231. #define SQL_DIAG_DFC_SS_LOAD_DATABASE            (SQL_DIAG_DFC_SS_BASE-27)
  232. #define SQL_DIAG_DFC_SS_LOAD_HEADERONLY         (SQL_DIAG_DFC_SS_BASE-28)
  233. #define SQL_DIAG_DFC_SS_LOAD_TABLE                (SQL_DIAG_DFC_SS_BASE-29)
  234. #define SQL_DIAG_DFC_SS_LOAD_TRANSACTION        (SQL_DIAG_DFC_SS_BASE-30)
  235. #define SQL_DIAG_DFC_SS_PRINT                    (SQL_DIAG_DFC_SS_BASE-31)
  236. #define SQL_DIAG_DFC_SS_RAISERROR                (SQL_DIAG_DFC_SS_BASE-32)
  237. #define SQL_DIAG_DFC_SS_READTEXT                (SQL_DIAG_DFC_SS_BASE-33)
  238. #define SQL_DIAG_DFC_SS_RECONFIGURE             (SQL_DIAG_DFC_SS_BASE-34)
  239. #define SQL_DIAG_DFC_SS_RETURN                    (SQL_DIAG_DFC_SS_BASE-35)
  240. #define SQL_DIAG_DFC_SS_SELECT_INTO             (SQL_DIAG_DFC_SS_BASE-36)
  241. #define SQL_DIAG_DFC_SS_SET                     (SQL_DIAG_DFC_SS_BASE-37)
  242. #define SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT     (SQL_DIAG_DFC_SS_BASE-38)
  243. #define SQL_DIAG_DFC_SS_SET_ROW_COUNT            (SQL_DIAG_DFC_SS_BASE-39)
  244. #define SQL_DIAG_DFC_SS_SET_STATISTICS            (SQL_DIAG_DFC_SS_BASE-40)
  245. #define SQL_DIAG_DFC_SS_SET_TEXTSIZE            (SQL_DIAG_DFC_SS_BASE-41)
  246. #define SQL_DIAG_DFC_SS_SETUSER                 (SQL_DIAG_DFC_SS_BASE-42)
  247. #define SQL_DIAG_DFC_SS_SHUTDOWN                (SQL_DIAG_DFC_SS_BASE-43)
  248. #define SQL_DIAG_DFC_SS_TRANS_BEGIN             (SQL_DIAG_DFC_SS_BASE-44)
  249. #define SQL_DIAG_DFC_SS_TRANS_COMMIT            (SQL_DIAG_DFC_SS_BASE-45)
  250. #define SQL_DIAG_DFC_SS_TRANS_PREPARE            (SQL_DIAG_DFC_SS_BASE-46)
  251. #define SQL_DIAG_DFC_SS_TRANS_ROLLBACK            (SQL_DIAG_DFC_SS_BASE-47)
  252. #define SQL_DIAG_DFC_SS_TRANS_SAVE                (SQL_DIAG_DFC_SS_BASE-48)
  253. #define SQL_DIAG_DFC_SS_TRUNCATE_TABLE            (SQL_DIAG_DFC_SS_BASE-49)
  254. #define SQL_DIAG_DFC_SS_UPDATE_STATISTICS        (SQL_DIAG_DFC_SS_BASE-50)
  255. #define SQL_DIAG_DFC_SS_UPDATETEXT                (SQL_DIAG_DFC_SS_BASE-51)
  256. #define SQL_DIAG_DFC_SS_USE                     (SQL_DIAG_DFC_SS_BASE-52)
  257. #define SQL_DIAG_DFC_SS_WAITFOR                 (SQL_DIAG_DFC_SS_BASE-53)
  258. #define SQL_DIAG_DFC_SS_WRITETEXT                (SQL_DIAG_DFC_SS_BASE-54)
  259.  
  260. //    Internal server datatypes - used when binding to SQL_C_BINARY
  261. #ifndef MAXNUMERICLEN    // Resolve ODS/DBLib conflicts
  262. // DB-Library datatypes
  263. #define DBMAXCHAR        256    // Max length of DBVARBINARY and DBVARCHAR, etc.
  264. #define MAXNAME         31
  265.  
  266. typedef char            DBCHAR;
  267. typedef unsigned char   DBBINARY;
  268. typedef unsigned char   DBTINYINT;
  269. typedef short           DBSMALLINT;
  270. typedef unsigned short  DBUSMALLINT;
  271. typedef long            DBINT;
  272. typedef double          DBFLT8;
  273. typedef unsigned char   DBBIT;
  274. typedef unsigned char   DBBOOL;
  275. typedef float           DBFLT4;
  276.  
  277. typedef DBFLT4 DBREAL;
  278. typedef UINT   DBUBOOL;
  279.  
  280. typedef struct dbvarychar
  281. {
  282.     DBSMALLINT  len;
  283.     DBCHAR      str[DBMAXCHAR];
  284. } DBVARYCHAR;
  285.  
  286. typedef struct dbvarybin
  287. {
  288.     DBSMALLINT  len;
  289.     BYTE        array[DBMAXCHAR];
  290. } DBVARYBIN;
  291.  
  292. typedef struct dbmoney
  293. {                        // Internal representation of MONEY data type
  294.     LONG  mnyhigh;        // Money value *10,000 (High 32 bits/signed)
  295.     ULONG mnylow;        // Money value *10,000 (Low 32 bits/unsigned)
  296. } DBMONEY;
  297.  
  298. typedef struct dbdatetime
  299. {                        // Internal representation of DATETIME data type
  300.     LONG  dtdays;        // No of days since Jan-1-1900 (maybe negative)
  301.     ULONG dttime;        // No. of 300 hundredths of a second since midnight
  302. } DBDATETIME;
  303.  
  304. typedef struct dbdatetime4
  305. {                        // Internal representation of SMALLDATETIME data type
  306.     USHORT numdays;     // No of days since Jan-1-1900
  307.     USHORT nummins;     // No. of minutes since midnight
  308. } DBDATETIM4;
  309.  
  310. typedef LONG DBMONEY4;    // Internal representation of SMALLMONEY data type
  311.                         // Money value *10,000
  312.  
  313. #define DBNUM_PREC_TYPE BYTE
  314. #define DBNUM_SCALE_TYPE BYTE
  315. #define DBNUM_VAL_TYPE BYTE
  316. typedef const LPBYTE    LPCBYTE;
  317. typedef DBINT *            LPDBINT;
  318.  
  319. #if (ODBCVER < 0x0300)
  320. #define MAXNUMERICLEN 16
  321.  
  322. typedef struct dbnumeric
  323. {                            // Internal representation of NUMERIC data type
  324.     DBNUM_PREC_TYPE   precision;            // Precision
  325.     DBNUM_SCALE_TYPE  scale;                // Scale
  326.     BYTE              sign;                 // Sign (1 if positive, 0 if negative)
  327.     DBNUM_VAL_TYPE      val[MAXNUMERICLEN];    // Value
  328. } DBNUMERIC;
  329. typedef DBNUMERIC DBDECIMAL;// Internal representation of DECIMAL data type
  330. #else    //    Use ODBC 3.0 definitions since same as DBLib
  331. #define MAXNUMERICLEN SQL_MAX_NUMERIC_LEN
  332. typedef SQL_NUMERIC_STRUCT DBNUMERIC;
  333. typedef SQL_NUMERIC_STRUCT DBDECIMAL;
  334. #endif
  335.  
  336. #endif //    MAXNUMERICLEN
  337.  
  338. /*****************************************************************
  339.  This struct is a global used for 
  340.  gathering statistal data on the driver.
  341.  Access to this struct is controled via the 
  342.  pStatCrit;
  343. ******************************************************************/
  344.  
  345. typedef struct sqlperf
  346. {
  347.     // Application Profile Statistics
  348.     DWORD TimerResolution;
  349.     DWORD SQLidu;
  350.     DWORD SQLiduRows;
  351.     DWORD SQLSelects;
  352.     DWORD SQLSelectRows;
  353.     DWORD Transactions;
  354.     DWORD SQLPrepares;
  355.     DWORD ExecDirects;
  356.     DWORD SQLExecutes;
  357.     DWORD CursorOpens;
  358.     DWORD CursorSize;
  359.     DWORD CursorUsed;
  360.     LDOUBLE PercentCursorUsed;
  361.     LDOUBLE AvgFetchTime;
  362.     LDOUBLE AvgCursorSize; 
  363.     LDOUBLE AvgCursorUsed;
  364.     DWORD SQLFetchTime;
  365.     DWORD SQLFetchCount;
  366.     DWORD CurrentStmtCount;
  367.     DWORD MaxOpenStmt;
  368.     DWORD SumOpenStmt;
  369.     
  370.     // Connection Statistics
  371.     DWORD CurrentConnectionCount;
  372.     DWORD MaxConnectionsOpened;
  373.     DWORD SumConnectionsOpened;
  374.     DWORD SumConnectiontime;
  375.     LDOUBLE AvgTimeOpened;
  376.  
  377.     // Network Statistics
  378.     DWORD ServerRndTrips;
  379.     DWORD BuffersSent;
  380.     DWORD BuffersRec;
  381.     DWORD BytesSent;
  382.     DWORD BytesRec;
  383.  
  384.     // Time Statistics;
  385.     DWORD msExecutionTime;
  386.     DWORD msNetWorkServerTime;
  387.  
  388. }     SQLPERF;
  389.  
  390. // The following are option for SQL_COPT_SS_PERF_DATA and SQL_COPT_SS_PERF_QUERY
  391. #define SQL_PERF_START    1            // Starts the driver sampling performance data.
  392. #define SQL_PERF_STOP    2            // Stops the counters from sampling performance data.
  393.  
  394.  
  395. //    ODBC BCP prototypes and defines
  396.  
  397. #define SUCCEED 1
  398. #define FAIL    0
  399.  
  400. #define DB_IN    1          // Transfer from client to server
  401. #define DB_OUT    2         // Transfer from server to client
  402.  
  403. #define BCPMAXERRS   1    // bcp_control parameter
  404. #define BCPFIRST     2    // bcp_control parameter
  405. #define BCPLAST      3    // bcp_control parameter
  406. #define BCPBATCH     4    // bcp_control parameter
  407. #define BCPKEEPNULLS 5    // bcp_control parameter
  408. #define BCPABORT     6    // bcp_control parameter
  409.  
  410. // BCP functions
  411. DBINT         SQL_API bcp_batch (HDBC);
  412. RETCODE      SQL_API bcp_bind (HDBC, LPCBYTE, INT, DBINT, LPCBYTE, INT, INT, INT);
  413. RETCODE      SQL_API bcp_colfmt (HDBC, INT, BYTE, INT, DBINT, LPCBYTE, INT, INT);
  414. RETCODE      SQL_API bcp_collen (HDBC, DBINT, INT);
  415. RETCODE      SQL_API bcp_colptr (HDBC, LPCBYTE, INT);
  416. RETCODE      SQL_API bcp_columns (HDBC, INT);
  417. RETCODE      SQL_API bcp_control (HDBC, INT, DBINT);
  418. DBINT         SQL_API bcp_done (HDBC);
  419. RETCODE      SQL_API bcp_exec (HDBC, LPDBINT);
  420. RETCODE      SQL_API bcp_init (HDBC, LPCSTR, LPCSTR, LPCSTR, INT);
  421. RETCODE      SQL_API bcp_moretext (HDBC, DBINT, LPCBYTE);
  422. RETCODE      SQL_API bcp_readfmt (HDBC, LPCSTR);
  423. RETCODE      SQL_API bcp_sendrow (HDBC);
  424. RETCODE      SQL_API bcp_writefmt (HDBC, LPCSTR);
  425. CHAR FAR *     SQL_API dbprtype (INT);
  426.  
  427.  
  428.  
  429. //    The following options have been deprecated
  430.  
  431. #define SQL_FAST_CONNECT                (SQL_COPT_SS_BASE+0)
  432. //    Defines for use with SQL_FAST_CONNECT - only useable before connecting
  433. #define SQL_FC_OFF        0L            //    Fast connect is off
  434. #define SQL_FC_ON        1L            //    Fast connect is on
  435. #define SQL_FC_DEFAULT    SQL_FC_OFF
  436.  
  437. //    Use SQL_ATTR_ENLIST_IN_DTC and SQL_ATTR_ENLIST_IN_XA (ODBC 3.0 definitions)
  438. #define SQL_COPT_SS_ENLIST_IN_DTC        (SQL_COPT_SS_BASE+7) // Enlist in a DTC transaction
  439. #define SQL_COPT_SS_ENLIST_IN_XA        (SQL_COPT_SS_BASE+8) // Enlist in a XA transaction
  440.  
  441. //    End of odbcss.h
  442.