home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / MFCINC.PAK / SQLTYPES.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  3.6 KB  |  139 lines

  1. /*********************************************************************
  2. ** SQLTYPES.H - This file defines the types used in ODBC
  3. **
  4. ** (C) Copyright 1995 By Microsoft Corp.
  5. **
  6. **     Created 4/10/95 for 2.50 specification
  7. *********************************************************************/
  8.  
  9. #ifndef __SQLTYPES
  10. #define __SQLTYPES
  11.  
  12. /* if ODBCVER is not defined, assume version 2.50 */
  13. #ifndef ODBCVER
  14. #define ODBCVER    0x0250
  15. #endif
  16.  
  17. /* environment specific definitions */
  18. #ifndef EXPORT
  19. #define EXPORT   _export
  20. #endif
  21.  
  22. /* define WINDOWS */
  23. /* _WINDOWS_ is defined in windows.h for 32 bit    */
  24. /* _INC_WINDOWS is defined in windows.h for 16 bit */
  25. #if (defined(_WINDOWS_) || defined(_INC_WINDOWS)) && !defined(WINDOWS)
  26. #define WINDOWS
  27. #endif
  28.  
  29. #ifdef WIN32
  30. #define SQL_API  __stdcall
  31. #elif defined(WINDOWS)
  32. #define SQL_API  EXPORT CALLBACK
  33. #else
  34. #define SQL_API
  35. #endif
  36.  
  37.  
  38. #ifndef RC_INVOKED
  39.  
  40. #if !defined(WINDOWS) && !defined(FAR)
  41. #define FAR
  42. #endif
  43.  
  44. /* SQL portable types for C */
  45. typedef unsigned char           UCHAR;
  46. typedef signed char             SCHAR;
  47. typedef long int                SDWORD;
  48. typedef short int               SWORD;
  49. typedef unsigned long int       UDWORD;
  50. typedef unsigned short int      UWORD;
  51.  
  52. #if (ODBCVER >= 0x0200)
  53. typedef signed long             SLONG;
  54. typedef signed short            SSHORT;
  55. typedef unsigned long           ULONG;
  56. typedef unsigned short          USHORT;
  57. #endif  /* ODBCVER >= 0x0200 */
  58. typedef double                  SDOUBLE;
  59. #if defined(WIN32)
  60. typedef double            LDOUBLE; /* long double == short double in Win32 */
  61. #elif defined(WINDOWS)
  62. typedef long double             LDOUBLE;
  63. #else
  64. typedef double                  LDOUBLE;
  65. #endif
  66. typedef float                   SFLOAT;
  67.  
  68. typedef void FAR *              PTR;
  69.  
  70. typedef void FAR *              HENV;
  71. typedef void FAR *              HDBC;
  72. typedef void FAR *              HSTMT;
  73.  
  74. typedef signed short            RETCODE;
  75.  
  76. typedef UCHAR                   SQLCHAR;
  77. typedef SCHAR                   SQLSCHAR;
  78. typedef SDWORD                  SQLINTEGER;
  79. typedef SWORD                   SQLSMALLINT;
  80. typedef UDWORD                  SQLUINTEGER;
  81. typedef UWORD                   SQLUSMALLINT;
  82.  
  83. typedef void FAR *              SQLPOINTER;
  84.  
  85. #if defined(WINDOWS) || defined(WIN32)
  86. typedef HENV            SQLHENV;
  87. typedef HDBC            SQLHDBC;
  88. typedef HSTMT            SQLHSTMT;
  89. #else
  90. typedef SQLINTEGER        SQLHENV;
  91. typedef SQLINTEGER        SQLHDBC;
  92. typedef SQLINTEGER        SQLHSTMT;
  93. #endif
  94.  
  95. typedef SQLSMALLINT             SQLRETURN;
  96.  
  97. #if defined(WINDOWS) || defined(WIN32) || defined(OS2)
  98. typedef HWND                    SQLHWND;
  99. #elif defined (UNIX)
  100. typedef Widget                  SQLHWND;
  101. #else
  102. /* placehold for future O/S GUI window handle definition */
  103. typedef SQLPOINTER              SQLHWND;        
  104. #endif
  105.  
  106. /* transfer types for DATE, TIME, TIMESTAMP */
  107. typedef struct tagDATE_STRUCT
  108. {
  109.         SQLSMALLINT    year;
  110.         SQLUSMALLINT   month;
  111.         SQLUSMALLINT   day;
  112. } DATE_STRUCT;
  113.  
  114. typedef struct tagTIME_STRUCT
  115. {
  116.         SQLUSMALLINT   hour;
  117.         SQLUSMALLINT   minute;
  118.         SQLUSMALLINT   second;
  119. } TIME_STRUCT;
  120.  
  121. typedef struct tagTIMESTAMP_STRUCT
  122. {
  123.         SQLSMALLINT    year;
  124.         SQLUSMALLINT   month;
  125.         SQLUSMALLINT   day;
  126.         SQLUSMALLINT   hour;
  127.         SQLUSMALLINT   minute;
  128.         SQLUSMALLINT   second;
  129.         SQLUINTEGER    fraction;
  130. } TIMESTAMP_STRUCT;
  131.  
  132. #if (ODBCVER >= 0x0200)
  133. typedef unsigned long int       BOOKMARK;
  134. #endif  /* ODBCVER >= 0x0200 */
  135.  
  136. #endif 
  137.  
  138. #endif /* #ifndef __SQLTYPES */
  139.