ID:               22860
 User updated by:  truth at ichaos dot com
 Reported By:      truth at ichaos dot com
 Status:           Open
 Bug Type:         ODBC related
 Operating System: SuSE 8.0
 PHP Version:      4.3.2-RC
 New Comment:

Actually I tried this with a string that was 28968 chars long, and this
it was actually 16388 chars long instead of 2000000. The characters
beyond 4096 were corrupted.

Sorry for the exagerated numbers.


Previous Comments:
------------------------------------------------------------------------

[2003-03-24 23:52:36] truth at ichaos dot com

All right, this snapshot didn't work. It's hard to write a script but
here is a good try:

First, a table in my IBM DB2 is created
CREATE TABLE test (
  ID INT,
  DATA CLOB(1M));

Put a string in the CLOB that is greater than 5K, and and ID = 1 or
so.

All right, now the script

<?
$linkid = odbc_connect("DBNAME", "USER", "PASSWORD");
$result = odbc_exec($linkid, "SELECT data FROM test WHERE id = 1");

odbc_longreadlen($result, 2000000);
odbc_binmode($result, ODBC_BINMODE_PASSTHRU);

$result = odbc_result($this->result, 1)

echo strlen($result);
?>

This should return the length of your string. If the odbc.defaultlrl is
set to 4096, the string is 2000000 chars long. If odbc.defaultlrl is
set to 2000000, the string is the correct length.

------------------------------------------------------------------------

[2003-03-24 23:20:19] [EMAIL PROTECTED]

And can you provide a script sample, and sample schema for me to use in
testing?

------------------------------------------------------------------------

[2003-03-24 17:31:15] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip

------------------------------------------------------------------------

[2003-03-24 15:01:56] truth at ichaos dot com

When odbc.defaultlrl is set to 4096 in the php.ini file, and I call
odbc_longreadlen($result, 2000000); in my script, the data returned for
that $result is padded at the end with garbage (prolly from memory).

When the odbc.defaultlrl is set to 2000000 in the php.ini file, and I
call odbc_longreadlen($result, 2000000); in my script, the data
returned for that $result is not padded at the end with garbage, and is
just fine.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=22860&edit=1

Reply via email to