Re: [PHP4BETA] cvs: php4 /ext/odbc/ php_odbc.c

[email protected] (Andreas Karajannis)
Newsgroups php.version4
Message-ID <[email protected]>
Nick Gorham wrote:
> 
> Hmm
> 
> not sure where the "while ( henv != SQL_NULL_HENV )" has come from there, I added
> the code to retrieve all the errors, And I think it should be allowed to stay. You
> often get a "driver not capable" error when connecting, this hides the real errors
> that may happen. When I added this the code read
> 
> #if !defined (HAVE_ADABAS)
>     do {
> #endif
>         ret = SQLError(henv, conn, stmt, state,
>                 &error, errormsg, sizeof(errormsg)-1, &errormsgsize);
>         if (func) {
>             php_error(E_WARNING, "SQL error: %s, SQL state %s in %s",
>                    errormsg, state, func);
>         } else {
>             php_error(E_WARNING, "SQL error: %s, SQL state %s",
>                     errormsg, state);
>         }
> #if !defined (HAVE_ADABAS)
>     } while (SQL_SUCCEEDED(ret));
> #endif
> 
> The !defined HAVE_ADABAS was added later. Would anyone object if it went back to
> that state ?
> 

I see your point, but many drivers are buggy regarding SQLError(), since
the do ... while above causes them to go into an infinte loop, never
returning SQL_NO_DATA_FOUND. This behaviour comes with Adabas (therefore
HAVE_ADABAS which has magically dissapeared and was replaced by "while (
henv != SQL_NULL_HENV )" by whoever), DBMaker, and probably Oracle
(Win32).
I think this "feature" sent IIS on my NT box to Nirvana while testing
the 4.0 release binaries ;-).

-Andreas
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.