--- functions/unified_odbc.c.orig Wed Apr 5 13:11:44 2000 +++ functions/unified_odbc.c Wed Apr 5 13:12:14 2000 @@ -666,7 +666,15 @@ } #endif - if ((rc = SQLPrepare(result->stmt, query, SQL_NTS)) != SQL_SUCCESS){ + rc = SQLPrepare(result->stmt, query, SQL_NTS); + switch (rc) { + case SQL_SUCCESS: + break; + case SQL_SUCCESS_WITH_INFO: + UODBC_SQL_ERROR(curr_conn->hdbc, result->stmt, "SQLPrepare"); + break; + + default: UODBC_SQL_ERROR(curr_conn->hdbc, result->stmt, "SQLPrepare"); SQLFreeStmt(result->stmt, SQL_DROP); RETURN_FALSE; @@ -840,8 +848,16 @@ } } } else { - if (rc != SQL_SUCCESS){ - UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, "SQLExecute"); + switch (rc) { + case SQL_SUCCESS: + break; + case SQL_SUCCESS_WITH_INFO: + UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, + "SQLExecute"); + break; + default: + UODBC_SQL_ERROR(result->conn_ptr->hdbc, result->stmt, + "SQLExecute"); RETVAL_FALSE; } } @@ -857,7 +873,7 @@ efree(params); } - if (rc == SQL_SUCCESS){ + if (rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO){ RETVAL_TRUE; } @@ -903,7 +919,7 @@ } rc = SQLGetInfo(result->conn_ptr->hdbc,SQL_MAX_CURSOR_NAME_LEN, (void *)&max_len,0,&len); - if (rc != SQL_SUCCESS){ + if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO){ RETURN_FALSE; } @@ -914,7 +930,7 @@ RETURN_FALSE; } rc = SQLGetCursorName(result->stmt,cursorname,(SWORD)max_len,&len); - if (rc != SQL_SUCCESS){ + if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO){ char state[6]; /* Not used */ SDWORD error; /* Not used */ char errormsg[255]; @@ -926,9 +942,10 @@ sizeof(errormsg)-1, &errormsgsize); if (!strncmp(state,"S1015",5)){ sprintf(cursorname,"php3_curs_%d", (int)result->stmt); - if (SQLSetCursorName(result->stmt,cursorname,SQL_NTS) != SQL_SUCCESS){ + rc = SQLSetCursorName(result->stmt,cursorname,SQL_NTS); + if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO){ UODBC_SQL_ERROR(result->conn_ptr->hdbc,result->stmt, - "SQLSetCursorName"); + "SQLSetCursorName"); RETVAL_FALSE; } else { RETVAL_STRING(cursorname,1); @@ -1461,7 +1478,8 @@ PHPWRITE(field,(rc == SQL_SUCCESS_WITH_INFO) ? 4095 : result->values[field_ind].vallen); - if (rc == SQL_SUCCESS) { /* no more data avail */ + if (rc == SQL_SUCCESS + || rc == SQL_SUCCESS_WITH_INFO) { /* no more data avail */ efree(field); RETURN_TRUE; } @@ -1779,7 +1797,8 @@ #else if(cur_opt != SQL_CUR_DEFAULT){ rc = SQLSetConnectOption(db_conn->hdbc, SQL_ODBC_CURSORS, cur_opt); - if (rc != SQL_SUCCESS ) { /* && rc != SQL_SUCCESS_WITH_INFO ? */ + if (rc != SQL_SUCCESS + && rc != SQL_SUCCESS_WITH_INFO) { /* && rc != SQL_SUCCESS_WITH_INFO ? */ UODBC_SQL_ERROR(db_conn->hdbc, SQL_NULL_HSTMT, "SQLSetConnectOption"); SQLFreeConnect(db_conn->hdbc); if (persistent) @@ -2189,7 +2208,8 @@ rc = SQLGetConnectOption(curr_conn->hdbc, SQL_AUTOCOMMIT, (PTR)&status); if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO){ - UODBC_SQL_ERROR(curr_conn->hdbc, SQL_NULL_HSTMT, "Test autocommit"); + UODBC_SQL_ERROR(curr_conn->hdbc, SQL_NULL_HSTMT, + "Test autocommit"); RETURN_FALSE; } RETVAL_LONG((long)status);