diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-11-28 15:08:56 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-11-28 15:08:56 +0200 |
commit | 91c962e4615101e14be4c720fc386878ddb598a4 (patch) | |
tree | 9c62ace7ee457f9e7c1edd9c89a5b6fba274d363 /odb/mssql/mssql-fwd.hxx | |
parent | 8823eb1c28f6589068a080a68283a8ddb47cb71b (diff) |
Implement statements; add support for tracing
Diffstat (limited to 'odb/mssql/mssql-fwd.hxx')
-rw-r--r-- | odb/mssql/mssql-fwd.hxx | 73 |
1 files changed, 63 insertions, 10 deletions
diff --git a/odb/mssql/mssql-fwd.hxx b/odb/mssql/mssql-fwd.hxx index b4afbb6..3579403 100644 --- a/odb/mssql/mssql-fwd.hxx +++ b/odb/mssql/mssql-fwd.hxx @@ -8,25 +8,78 @@ #include <odb/pre.hxx> +#include <cstddef> // std::size_t + // Forward declaration for some of the types defined in sqltypes.h or // sqlncli.h. This allows us to avoid having to include these files // in public headers. // #ifdef _WIN32 -typedef long SQLINTEGER; -typedef unsigned long SQLUINTEGER; + +// Keep consistent with Windows ODBC headers. +// + +typedef long SQLINTEGER; +typedef unsigned long SQLUINTEGER; + +#ifdef _WIN64 +typedef __int64 SQLLEN; +typedef unsigned __int64 SQLULEN; +#else +#ifndef SQLLEN +typedef SQLINTEGER SQLLEN; +typedef SQLUINTEGER SQLULEN; +#endif +#endif + +#else // _WIN32 + +// Keep consistent with unixODBC headers. +// + +template <std::size_t sizeof_long> +struct odbc_types; + +template <> +struct odbc_types<4> +{ + typedef long integer; + typedef unsigned long uinteger; + + typedef integer len; + typedef uinteger ulen; +}; + +template <> +struct odbc_types<8> +{ + typedef int integer; + typedef unsigned int uinteger; + + typedef long len; + typedef unsigned long ulen; +}; + +typedef odbc_types<sizeof (long)>::integer SQLINTEGER; +typedef odbc_types<sizeof (long)>::uinteger SQLUINTEGER; + +#ifndef SQLLEN +typedef odbc_types<sizeof (long)>::len SQLLEN; +typedef odbc_types<sizeof (long)>::ulen SQLULEN; #endif -typedef short SQLSMALLINT; -typedef unsigned short SQLUSMALLINT; +#endif // _WIN32 + +typedef short SQLSMALLINT; +typedef unsigned short SQLUSMALLINT; -typedef SQLSMALLINT SQLRETURN; +typedef SQLSMALLINT SQLRETURN; -typedef void* SQLHANDLE; -typedef SQLHANDLE SQLHENV; -typedef SQLHANDLE SQLHDBC; -typedef SQLHANDLE SQLHSTMT; -typedef SQLHANDLE SQLHDESC; +typedef void* SQLHANDLE; +typedef SQLHANDLE SQLHENV; +typedef SQLHANDLE SQLHDBC; +typedef SQLHANDLE SQLHSTMT; +typedef SQLHANDLE SQLHDESC; // If you get a redefinition error or warning for one of these macros, // then that means you included this header (or one that includes it), |