kalowsky Mon Jan 6 13:23:56 2003 EDT Modified files: /php4/ext/odbc php_odbc.c Log: Patch for bug #19349 Index: php4/ext/odbc/php_odbc.c diff -u php4/ext/odbc/php_odbc.c:1.145 php4/ext/odbc/php_odbc.c:1.146 --- php4/ext/odbc/php_odbc.c:1.145 Mon Jan 6 13:10:06 2003 +++ php4/ext/odbc/php_odbc.c Mon Jan 6 13:23:55 2003 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_odbc.c,v 1.145 2003/01/06 18:10:06 kalowsky Exp $ */ +/* $Id: php_odbc.c,v 1.146 2003/01/06 18:23:55 kalowsky Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -609,19 +609,24 @@ WRONG_PARAM_COUNT; convert_to_long_ex(pv_flag); + ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", +le_result); - if (Z_LVAL_PP(pv_res)) { - ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", le_result); + /* if (Z_LVAL_PP(pv_res)) { */ if (mode) result->longreadlen = Z_LVAL_PP(pv_flag); else result->binmode = Z_LVAL_PP(pv_flag); +/* + * According to the documentation there is no possible way for you to run these +functions + * without having a result set. + * } else { if (mode) ODBCG(defaultlrl) = Z_LVAL_PP(pv_flag); else ODBCG(defaultbinmode) = Z_LVAL_PP(pv_flag); } +*/ RETURN_TRUE; } /* }}} */ @@ -1825,7 +1830,7 @@ NULL, 0, NULL, &fieldsize); } /* For char data, the length of the returned string will be longreadlen - 1 */ - fieldsize = (result->longreadlen <= 0) ? 4096 : result->longreadlen; + fieldsize = (result->longreadlen <= 0) ? ODBCG(defaultlrl) : +result->longreadlen; field = emalloc(fieldsize); if (!field) { php_error(E_WARNING, "Out of memory"); @@ -1870,7 +1875,7 @@ /* If we come here, output unbound LONG and/or BINARY column data to the client */ /* We emalloc 1 byte more for SQL_C_CHAR (trailing \0) */ - fieldsize = (sql_c_type == SQL_C_CHAR) ? 4096 : 4095; + fieldsize = (sql_c_type == SQL_C_CHAR) ? ODBCG(defaultlrl)+1: +ODBCG(defaultlrl); if ((field = emalloc(fieldsize)) == NULL) { php_error(E_WARNING,"Out of memory"); RETURN_FALSE; @@ -1892,7 +1897,7 @@ RETURN_FALSE; } /* chop the trailing \0 by outputing only 4095 bytes */ - PHPWRITE(field,(rc == SQL_SUCCESS_WITH_INFO) ? 4095 : + PHPWRITE(field,(rc == SQL_SUCCESS_WITH_INFO) ? ODBCG(defaultlrl) : result->values[field_ind].vallen); if (rc == SQL_SUCCESS) { /* no more data avail */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php