home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / ODBCSS.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  17.7 KB  |  444 lines

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