--- php_mssql.c.1.149 2005-08-05 15:34:08.698263336 +0100 +++ php_mssql.c 2005-08-05 15:42:09.225212136 +0100 @@ -2027,13 +2027,27 @@ /* modify datalen and maxlen according to dbrpcparam documentation */ if ( (type==SQLVARCHAR) || (type==SQLCHAR) || (type==SQLTEXT) ) { /* variable-length type */ if (is_null) { - maxlen=0; - datalen=0; + datalen = 0; + if (is_output) + maxlen = -1; + else + maxlen = -1; } else { convert_to_string_ex(var); - datalen=Z_STRLEN_PP(var); value=(LPBYTE)Z_STRVAL_PP(var); + if (is_output) { + if ((maxlen > 0 ) && (maxlen < 256)) + datalen = maxlen; + else { + maxlen = 255; + datalen = 255; + } + } + else { + maxlen = -1; + datalen=Z_STRLEN_PP(var); + } } } else { /* fixed-length type */