diff -dPNur php-5.2.6/ext/pdo_odbc/odbc_stmt.c php-5.2.6-ds/ext/pdo_odbc/odbc_stmt.c --- php-5.2.6/ext/pdo_odbc/odbc_stmt.c 2007-12-31 08:20:10.000000000 +0100 +++ php-5.2.6-ds/ext/pdo_odbc/odbc_stmt.c 2008-06-09 13:33:13.000000000 +0200 @@ -407,9 +431,16 @@ return 0; } } + + + if (displaysize < 0) { + col->maxlen = S->cols[colno].datalen = 0; + colsize = 256; + } else { colsize = displaysize; col->maxlen = S->cols[colno].datalen = colsize; + } col->namelen = colnamelen; col->name = estrdup(S->cols[colno].colname); @@ -485,14 +526,16 @@ if (rc != SQL_SUCCESS_WITH_INFO) { break; } - } - - if (C->fetched_len == SQL_NO_TOTAL) { - used += alloced - used; - } else { + + used = alloced - 1; + } else { + if (C->fetched_len == SQL_NO_TOTAL) { + used = alloced - 1; + } else { used += C->fetched_len; - } - + } + } + if (rc == SQL_SUCCESS) { /* this was the final fetch */ break;