diff options
| author | Stig Bakken <ssb@php.net> | 2000-12-05 12:11:30 +0000 |
|---|---|---|
| committer | Stig Bakken <ssb@php.net> | 2000-12-05 12:11:30 +0000 |
| commit | 92fc2093844ef626211cab686007817bb0cf4524 (patch) | |
| tree | 63f815d94a516aaf4521d6d6ed0f75ff62e9b009 /ext/odbc/php_odbc.c | |
| parent | b97e23c4a83ed65e9db2fe282a621ebd4470ff1e (diff) | |
| download | php-git-92fc2093844ef626211cab686007817bb0cf4524.tar.gz | |
Applied IBM DB2 patch by Walter Franzini <walter@sys-net.it>
@ext/odbc: IBM DB2 patch by Walter Franzini <walter@sys-net.it>
Diffstat (limited to 'ext/odbc/php_odbc.c')
| -rw-r--r-- | ext/odbc/php_odbc.c | 41 |
1 files changed, 28 insertions, 13 deletions
diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index 7ff6523417..2219f2fcd7 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -774,11 +774,17 @@ PHP_FUNCTION(odbc_prepare) } #endif - if ((rc = SQLPrepare(result->stmt, query, SQL_NTS)) != SQL_SUCCESS) { - odbc_sql_error(conn->henv, conn->hdbc, result->stmt, "SQLPrepare"); - SQLFreeStmt(result->stmt, SQL_DROP); - RETURN_FALSE; - } + rc = SQLPrepare(result->stmt, query, SQL_NTS); + switch (rc) { + case SQL_SUCCESS: + break; + case SQL_SUCCESS_WITH_INFO: + odbc_sql_error(conn->henv, conn->hdbc, result->stmt, "SQLPrepare"); + break; + default: + odbc_sql_error(conn->henv, conn->hdbc, result->stmt, "SQLPrepare"); + RETURN_FALSE; + } SQLNumParams(result->stmt, &(result->numparams)); SQLNumResultCols(result->stmt, &(result->numcols)); @@ -933,10 +939,16 @@ PHP_FUNCTION(odbc_execute) } } } else { - if (rc != SQL_SUCCESS) { - odbc_sql_error(result->conn_ptr->henv, result->conn_ptr->hdbc, result->stmt, "SQLExecute"); - RETVAL_FALSE; - } + switch (rc) { + case SQL_SUCCESS: + break; + case SQL_NO_DATA_FOUND: + case SQL_SUCCESS_WITH_INFO: + odbc_sql_error(result->conn_ptr->henv, result->conn_ptr->hdbc, result->stmt, "SQLExecute"); + break; + default: + RETVAL_FALSE; + } } if (result->numparams > 0) { @@ -948,7 +960,8 @@ PHP_FUNCTION(odbc_execute) efree(params); } - if (rc == SQL_SUCCESS) { + if (rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO + || rc == SQL_NO_DATA_FOUND) { RETVAL_TRUE; } @@ -986,7 +999,7 @@ PHP_FUNCTION(odbc_cursor) 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; } @@ -997,7 +1010,7 @@ PHP_FUNCTION(odbc_cursor) 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]; @@ -1102,7 +1115,9 @@ PHP_FUNCTION(odbc_exec) #endif rc = SQLExecDirect(result->stmt, query, SQL_NTS); - if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) { + if (rc != SQL_SUCCESS + && rc != SQL_SUCCESS_WITH_INFO + && rc != SQL_NO_DATA_FOUND) { /* XXX FIXME we should really check out SQLSTATE with SQLError * in case rc is SQL_SUCCESS_WITH_INFO here. */ |
