On Monday, October 18, 2010 10:21 AM, Eric Roode wrote:
[...]

> I spoke to a database guy I know at Microsoft; he was of the opinion
> that since the sproc was *called* successfully, it was not an error
> condition, and that I need to parse the return info (error message).
> He wasn't speaking authoritatively though, and I don't know if this is
> true in general.  Do you happen to know what counts as an "error
condition"
> for SQL Server / ODBC?  And what counts as SQL_SUCCESS_WITH_INFO?

This page:
http://msdn.microsoft.com/en-us/library/ms714687%28v=VS.85%29.aspx
has some interesting info about the STATE that gets returned.  In
particular,
it shows that the state code 23000 (which is what I got) means
"Integrity
constraint violation".  So I suppose if $sth->execute() returns -1, I
should
also look at $sth->state().

That page also says that if the first two characters of the state are
"01", then it's a warning, and the driver should return
SQL_SUCCESS_WITH_INFO;
and if the first two characters are anything else, it's an error, and
the driver should return SQL_ERROR.  So that does point to it being a
driver bug.

Thanks,
-- Eric


Reply via email to