text: #ifndef DBSPECIFIC_H
  #define DBSPECIFIC_H
  
  // Items specific to databases.
  //
  // Obviously we'd like to minimize this, but if they are needed this file isolates them.  I'd like for there to be a
  // single build of pyodbc on each platform and not have a bunch of defines for supporting different databases.
  
  // ---------------------------------------------------------------------------------------------------------------------
  // SQL Server
  
  #define SQL_SS_XML -152             // SQL Server 2005 XML type
  #define SQL_DB2_DECFLOAT -360       // IBM DB/2 DECFLOAT type
  #define SQL_DB2_XML -370            // IBM DB/2 XML type
  #define SQL_SS_TIME2 -154           // SQL Server 2008 time type
  #define SQL_SS_TIMESTAMPOFFSET -155 // SQL Server 2008 time type
  
  struct SQL_SS_TIME2_STRUCT
  {
      SQLUSMALLINT hour;
      SQLUSMALLINT minute;
      SQLUSMALLINT second;
      SQLUINTEGER fraction;
  };
  
  struct SQL_SS_TIMESTAMPOFFSET_STRUCT
  {
      SQLSMALLINT year;
      SQLUSMALLINT month;
      SQLUSMALLINT day;
      SQLUSMALLINT hour;
      SQLUSMALLINT minute;
      SQLUSMALLINT second;
      SQLUINTEGER fraction;
      SQLSMALLINT timezone_hour;
      SQLSMALLINT timezone_minute;
  };
  
  // The SQLGUID type isn't always available when compiling, so we'll make our own with a
  // different name.
  
  struct PYSQLGUID
  {
      // I was hoping to use uint32_t, etc., but they aren't included in a Python build.  I'm not
      // going to require that the compilers supply anything beyond that.  There is PY_UINT32_T,
      // but there is no 16-bit version.  We'll stick with Microsoft's WORD and DWORD which I
      // believe the ODBC headers will have to supply.
      DWORD Data1;
      WORD Data2;
      WORD Data3;
      byte Data4[8];
  };
  
  #endif // DBSPECIFIC_H
  