kalowsky Tue Jan 7 17:56:58 2003 EDT Modified files: /php4/ext/odbc config.m4 php_odbc.c Log: Reverting last change as it really doesn't fix longreadlen problems in all cases. Index: php4/ext/odbc/config.m4 diff -u php4/ext/odbc/config.m4:1.55 php4/ext/odbc/config.m4:1.56 --- php4/ext/odbc/config.m4:1.55 Tue Nov 12 12:31:39 2002 +++ php4/ext/odbc/config.m4 Tue Jan 7 17:56:58 2003 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.55 2002/11/12 17:31:39 sniper Exp $ +dnl $Id: config.m4,v 1.56 2003/01/07 22:56:58 kalowsky Exp $ dnl dnl @@ -373,6 +373,7 @@ ODBC_LFLAGS=-L$withval/lib ODBC_LIBS=-liodbc AC_DEFINE(HAVE_IODBC,1,[ ]) + AC_DEFINE(HAVE_ODBC2,1,[ ]) AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) Index: php4/ext/odbc/php_odbc.c diff -u php4/ext/odbc/php_odbc.c:1.146 php4/ext/odbc/php_odbc.c:1.147 --- php4/ext/odbc/php_odbc.c:1.146 Mon Jan 6 13:23:55 2003 +++ php4/ext/odbc/php_odbc.c Tue Jan 7 17:56:58 2003 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_odbc.c,v 1.146 2003/01/06 18:23:55 kalowsky Exp $ */ +/* $Id: php_odbc.c,v 1.147 2003/01/07 22:56:58 kalowsky Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -609,24 +609,19 @@ 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)) { */ + if (Z_LVAL_PP(pv_res)) { + ZEND_FETCH_RESOURCE(result, odbc_result *, pv_res, -1, "ODBC result", +le_result); 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; } /* }}} */ @@ -1830,7 +1825,7 @@ NULL, 0, NULL, &fieldsize); } /* For char data, the length of the returned string will be longreadlen - 1 */ - fieldsize = (result->longreadlen <= 0) ? ODBCG(defaultlrl) : result->longreadlen; + fieldsize = (result->longreadlen <= 0) ? 4096 : +result->longreadlen; field = emalloc(fieldsize); if (!field) { php_error(E_WARNING, "Out of memory"); @@ -1875,7 +1870,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) ? ODBCG(defaultlrl)+1: ODBCG(defaultlrl); + fieldsize = (sql_c_type == SQL_C_CHAR) ? 4096 : 4095; if ((field = emalloc(fieldsize)) == NULL) { php_error(E_WARNING,"Out of memory"); RETURN_FALSE; @@ -1897,7 +1892,7 @@ RETURN_FALSE; } /* chop the trailing \0 by outputing only 4095 bytes */ - PHPWRITE(field,(rc == SQL_SUCCESS_WITH_INFO) ? ODBCG(defaultlrl) : + PHPWRITE(field,(rc == SQL_SUCCESS_WITH_INFO) ? 4095 : 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