Philip Thompson wrote:
On Jan 10, 2007, at 6:36 PM, Chris wrote:
Philip Thompson wrote:
Hi.
I have been experiencing MSSQL woes lately. I have a stored procedure
that I call in PHP using mssql_* functions. In my procedure, I have a
transaction that rolls back on failure and commits on success (of
course). If it commits, I get the proper return value (int) and the
appropriate output parameters. However, if it rolls back, I get
NOTHING... even if I try to return an error code (int) after the
ROLLBACK TRANSACTION statement. The output parameter also does not
get set upon rollback.
Is there a way to grab the error even in a rollback? or at least
return something besides an empty string/int? I would like to know
what error message to provide the user/admin.
SQL Server 2000, PHP 5.1.6, ntwdblib.dll version 8.00.194
Does it work outside of php? That is - you run it manually in mssql
(whatever tools that has) you get the proper codes?
Yes, it works perfectly from the server and returns the expected
outcome. It's as though PHP sees the 'rollback' and automatically
assumes that the whole thing failed... so why return a value or output
parameters. Weird, I know. Any other suggestions?
Can you show us the part of the code that deals with the rollback?
If you are issuing a rollback yourself:
$result = mssql_query("rollback transaction");
then you need to handle that yourself because that's treated as a
separate query.
If you're not doing that (the transaction is rolling itself back), then
I'm out of ideas :)
--
Postgresql & php tutorials
http://www.designmagick.com/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php