You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by td...@apache.org on 2008/06/17 20:36:02 UTC

svn commit: r668786 - /apr/apr-util/branches/1.3.x/dbd/apr_dbd_odbc.c

Author: tdonovan
Date: Tue Jun 17 11:36:01 2008
New Revision: 668786

URL: http://svn.apache.org/viewvc?rev=668786&view=rev
Log:
Don't try to close results or stmts in pool cleanups after the connection has been manually closed. - trunk r668784

Modified:
    apr/apr-util/branches/1.3.x/dbd/apr_dbd_odbc.c

Modified: apr/apr-util/branches/1.3.x/dbd/apr_dbd_odbc.c
URL: http://svn.apache.org/viewvc/apr/apr-util/branches/1.3.x/dbd/apr_dbd_odbc.c?rev=668786&r1=668785&r2=668786&view=diff
==============================================================================
--- apr/apr-util/branches/1.3.x/dbd/apr_dbd_odbc.c (original)
+++ apr/apr-util/branches/1.3.x/dbd/apr_dbd_odbc.c Tue Jun 17 11:36:01 2008
@@ -293,10 +293,11 @@
 {   apr_dbd_results_t *dbr = (apr_dbd_results_t *) d;
     SQLRETURN rc = SQL_SUCCESS;
     
-    if (dbr && !dbr->isclosed) {
-        rc = SQLCloseCursor(dbr->stmt);
+    if (dbr && dbr->apr_dbd && dbr->apr_dbd->dbc) {
+    	if (!dbr->isclosed) 
+        	rc = SQLCloseCursor(dbr->stmt);
+    	dbr->isclosed = 1;
     }
-    dbr->isclosed = 1;
     return APR_FROM_SQL_RESULT(rc);
 }
 
@@ -305,12 +306,15 @@
 {   
     SQLRETURN rc = APR_SUCCESS;
     apr_dbd_prepared_t *statement = s;
-    SQLHANDLE hstmt = statement->stmt;
     /* stmt is closed if connection has already been closed */
-    if (hstmt && statement->apr_dbd && statement->apr_dbd->dbc) {
-        rc = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
+    if (statement) {
+        SQLHANDLE hstmt = statement->stmt;
+
+        if (hstmt && statement->apr_dbd && statement->apr_dbd->dbc) {
+            rc = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
         }
-    statement->stmt = NULL;
+        statement->stmt = NULL;
+    }
     return APR_FROM_SQL_RESULT(rc);
 }