ID:               41388
 Comment by:       xxx at xxx dot cc
 Reported By:      superfelo at yahoo dot com
 Status:           Assigned
 Bug Type:         COM related
 Operating System: Windows XP and 2003
 PHP Version:      5.2.2
 Assigned To:      wez
 New Comment:

¿Se arreglará alguna vez?
¿Hay alguien trabajando en el problema?

Will fix any time?
Is anyone working on the problem?


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

[2007-12-19 13:26:19] superfelo at yahoo dot com

Is there any progress?
Is working on the problem?

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

[2007-08-15 08:33:02] [EMAIL PROTECTED]

Assigned to the maintainer.

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

[2007-05-14 15:29:36] superfelo at yahoo dot com

Description:
------------
As it is possible to see bellow, a COM Object is opened, then Data Base
is read by a Recordset and a OLE object is loaded in such Recordset.

Later, using a GetChunk which is a Recordset function a number of bytes
in OLE object is read but this function just result in the number of
printable characters and it discards or ignore for instance, byte 0 or
any other not printable character.

In the second example, it is possible to see a function to read 20
bytes after a certain position. Now the problem is similar. The 20 bytes
has been counted by the results are just printable characters of such 20
bytes. So, result is less than 20 character because not all 20
characters are printable. 

Reproduce code:
---------------
$engine = new COM("DAO.DBEngine.35");
$engine->SystemDB = "c:\system.mda";
$engine->defaultuser = "admin";
$engine->defaultpassword = "";
$db = $engine->OpenDataBase("c:\bd.mdb");

$sqlstr = "SELECT DISTINCTROW tabla1.* FROM tabla1;" ;
$rst = $db->OpenRecordset("RsConfig",$sqlstr);
echo $rst->Fields["Campo1"]->GetChunk(1,20);
//-------------------------------------------------
$mstream =  new COM("ADODB.Stream");
$mstream->Type = 1; // 'adTypeBinary
$mstream->Open;
$mstream->Write($rst->Fields["Campo1"]->Value);
$mstream->position = 0;
echo $mstream->Read(20);


Expected result:
----------------
The actual number of bytes in a OLE object stored in a Recordset: This
number of bytes of course, must include printable and not printable
characters.

Actual result:
--------------
Just the number of printable characters.


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


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

Reply via email to