Re: [INTERNALS-WIN] Re: ext/odbc no longer builds under VC6
| From: | Pierre Joye | Date: | Sun, 14 Dec 2008 19:15:54 +0000 |
| Subject: | Re: [INTERNALS-WIN] Re: ext/odbc no longer builds under VC6 | ||
| References: | 1 2 3 | Groups: | php.internals.win |
| Request: | Send a blank email to internals-win+get-194@lists.php.net to get a copy of this message | ||
On Sun, Dec 14, 2008 at 7:08 PM, Steph Fox <steph@php.net> wrote:
> OK, going back to the public list.
>
>> First of all, my patches have been tested to work on VC6 (both 32 and
>> 64bit) before i released it to the PHP public.
>
> Right. Support for 64-bit ODBC came with Windows Server 2003 (see
> http://msdn.microsoft.com/en-us/library/ms716287(VS.85).aspx).
> Presumably
> that means we lose support for earlier versions if we move to this API? What
> about Windows 2000 Server, where do we stand with support for that these
> days?
>
> (NB we only dropped support for Windows 98 two years ago.)
>
>> Secondly, to my knowledge, the header files and libraries for developing
>> ODBC enabled applications on Windows is not part of the compiler itself but
>> of either the Platform SDK or the MDAC package installed.
>
> I believe the odbc stuff was shipped with the compiler, but... whatever.
It is in the platform SDK. See below.
> It's not clear to me which MDAC package I should be downloading to get
> SQLLEN defined in the headers/libs. Do you know which you're using?
Here is what is in the sqltypes.h header (SDK 2003/02):
/* API declaration data types */
typedef unsigned char SQLCHAR;
#if (ODBCVER >= 0x0300)
typedef signed char SQLSCHAR;
typedef unsigned char SQLDATE;
typedef unsigned char SQLDECIMAL;
typedef double SQLDOUBLE;
typedef double SQLFLOAT;
#endif
typedef long SQLINTEGER;
typedef unsigned long SQLUINTEGER;
#ifdef _WIN64
typedef INT64 SQLLEN;
typedef UINT64 SQLULEN;
typedef UINT64 SQLSETPOSIROW;
#else
#define SQLLEN SQLINTEGER
#define SQLULEN SQLUINTEGER
#define SQLSETPOSIROW SQLUSMALLINT
#endif
//For Backward compatibility
#ifdef WIN32
typedef SQLULEN SQLROWCOUNT;
typedef SQLULEN SQLROWSETSIZE;
typedef SQLULEN SQLTRANSID;
typedef SQLLEN SQLROWOFFSET;
#endif
I tested again using a fresh installed windows XP Pro, VC6 Enterprise
SP6, and the platform SDK 2003/02 without any other dependency (deps/
or php_builds/ are empty) and it compiles fine.
I can pack the include and lib directories from the SDK in a zip and
upload it somewhere if you need them.
Cheers,
--
Pierre
http://blog.thepimp.net | http://www.libgd.org