Re: ext/odbc no longer builds under VC6

[email protected] ("Steph Fox")
Newsgroups php.internals.win
Message-ID <00cf01c95e16$e86563a0$3ffc1f3e@foxbox>
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.

> Thirdly, the version of the ODBC API (3.51) that i uses as a base for 
> these patches has been around for some 5 years, and is available on  all 
> modern platforms including Windows, Unix, Linux and Mac OS X.

Version 3.51 is available in the version of MSVC++ 6.0 I have installed. It 
doesn't define SQLLEN or SQLULEN. The extension redefines the version to 
2.50 in two places, but out-commenting those lines makes no difference 
because the actual definitions are missing from the header. (I've 
out-commented them here anyway for now.)

> I am guessing you are using a very old version of either of these 
> packages on your machine. Or you may have still a very old sql.h or 
> sqltype.h file installed somewhere in front of your include path. Or  as a 
> last option, you may have defined ODBCVER to 0x0250 or 0x0300  before 
> including the sql.h file maybe in your VC project file.

I find it difficult to believe they upgraded the API without bumping the 
version number. Can you confirm that you're using 3.51 and not, say, 3.52?

> However i would like to make clear that without using this ODBC 3.51  API, 
> it will be impossible for PHP to move into the 64bit windows  realms 
> without loosing major data connectivity.

No, it's the Windows Server 2003 stuff we need. Which rather begs the 
question, why didn't the 2003 SDK upgrade include this update?

I have this working here with:

#ifndef SQLLEN
#define SQLLEN SQLINTEGER
#define SQLULEN SQLUINTEGER
#endif

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?

- Steph
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.