wez Sat Jun 11 10:48:07 2005 EDT
Modified files:
/php-src/ext/pdo_odbc odbc_driver.c
Log:
hunting for a bug. Looks like it might be yet-another-mysterious-shutdown
problem.
http://cvs.php.net/diff.php/php-src/ext/pdo_odbc/odbc_driver.c?r1=1.22&r2=1.23&ty=u
Index: php-src/ext/pdo_odbc/odbc_driver.c
diff -u php-src/ext/pdo_odbc/odbc_driver.c:1.22
php-src/ext/pdo_odbc/odbc_driver.c:1.23
--- php-src/ext/pdo_odbc/odbc_driver.c:1.22 Sat Jun 11 08:38:12 2005
+++ php-src/ext/pdo_odbc/odbc_driver.c Sat Jun 11 10:48:06 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: odbc_driver.c,v 1.22 2005/06/11 12:38:12 wez Exp $ */
+/* $Id: odbc_driver.c,v 1.23 2005/06/11 14:48:06 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -101,8 +101,10 @@
SQLEndTran(SQL_HANDLE_DBC, H->dbc, SQL_ROLLBACK);
SQLDisconnect(H->dbc);
SQLFreeHandle(SQL_HANDLE_DBC, H->dbc);
+ H->dbc = NULL;
}
SQLFreeHandle(SQL_HANDLE_ENV, H->env);
+ H->env = NULL;
pefree(H, dbh->is_persistent);
return 0;
@@ -249,10 +251,9 @@
if (dbh->auto_commit) {
/* turn auto-commit back on again */
- RETCODE rc;
rc = SQLSetConnectAttr(H->dbc, SQL_ATTR_AUTOCOMMIT,
(SQLPOINTER)SQL_AUTOCOMMIT_ON, SQL_NTS);
if (rc != SQL_SUCCESS) {
- pdo_odbc_drv_error("SQLSetConnectAttr AUTOCOMMIT =
OFF");
+ pdo_odbc_drv_error("SQLSetConnectAttr AUTOCOMMIT = ON");
return 0;
}
}
@@ -263,7 +264,7 @@
{
pdo_odbc_db_handle *H = (pdo_odbc_db_handle *)dbh->driver_data;
RETCODE rc;
-
+
rc = SQLEndTran(SQL_HANDLE_DBC, H->dbc, SQL_ROLLBACK);
if (rc != SQL_SUCCESS) {
@@ -273,12 +274,11 @@
return 0;
}
}
- if (dbh->auto_commit && H->dbc && dbh->in_txn) {
+ if (dbh->auto_commit && H->dbc) {
/* turn auto-commit back on again */
- RETCODE rc;
rc = SQLSetConnectAttr(H->dbc, SQL_ATTR_AUTOCOMMIT,
(SQLPOINTER)SQL_AUTOCOMMIT_ON, SQL_NTS);
if (rc != SQL_SUCCESS) {
- pdo_odbc_drv_error("SQLSetConnectAttr AUTOCOMMIT =
OFF");
+ pdo_odbc_drv_error("SQLSetConnectAttr AUTOCOMMIT = ON");
return 0;
}
}
@@ -357,13 +357,12 @@
return 0;
}
- if (!dbh->auto_commit) {
- rc = SQLSetConnectAttr(H->dbc, SQL_ATTR_AUTOCOMMIT,
(SQLPOINTER)SQL_AUTOCOMMIT_OFF, SQL_NTS);
- if (rc != SQL_SUCCESS) {
- pdo_odbc_drv_error("SQLSetConnectAttr AUTOCOMMIT =
OFF");
- odbc_handle_closer(dbh TSRMLS_CC);
- return 0;
- }
+ rc = SQLSetConnectAttr(H->dbc, SQL_ATTR_AUTOCOMMIT,
+ (SQLPOINTER)(dbh->auto_commit ? SQL_AUTOCOMMIT_ON :
SQL_AUTOCOMMIT_OFF), SQL_NTS);
+ if (rc != SQL_SUCCESS) {
+ pdo_odbc_drv_error("SQLSetConnectAttr AUTOCOMMIT");
+ odbc_handle_closer(dbh TSRMLS_CC);
+ return 0;
}
/* set up the cursor library, if needed, or if configured explicitly */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php