ID: 10580
User Update by: [EMAIL PROTECTED]
Status: Open
Bug Type: COM related
Operating system: Win2k
PHP Version: 4.0.7-dev (dated 16-May-2001)
Description: Access Violation using ADODB

COM broken in PHP version 4.0.7-dev

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

[2001-05-16 08:34:57] [EMAIL PROTECTED]
Bug reopened, CVS dated 16 May 2001,

message when accessing database:
PHP has encountered an Access Violation at 011CD614


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

[2001-05-08 20:12:03] [EMAIL PROTECTED]
works here.

the only mistake i found was, that if either the connect string or the query was wrong 
$conn->execute() returned a nullpointer instead of a valid recordset.
this only produced a warning so there was a nullpointer exception at the first attempt 
to access $rs->...
now i produce an error (unfortunatelly this causes the script to stop).
i'll fix this in the code and switch back to a warning, but i think it's ok for now.

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

[2001-05-08 19:18:07] [EMAIL PROTECTED]
Here is a code snippet for testing ADODB:

<?php

define ("DSN_USER", "sa");
define ("DSN_PWD", "");
define ("DB_SERVERNAME", "localhost");
define ("DATABASENAME", "Northwind");

define ("OLEDB_CONNECTION_STRING", "Provider=SQLOLEDB; Data Source=".DB_SERVERNAME."; 
Initial Catalog=".DATABASENAME."; User ID=".DSN_USER."; Password=".DSN_PWD);

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");

$conn->Open(OLEDB_CONNECTION_STRING);

$command = "SELECT * from employees";

$rs = $conn->Execute($command); // Recordset
$num_columns = $rs->Fields->Count();

$this->set_arr($num_columns);

for ($i=0; $i < $num_columns; $i++) {
        $fld[$i] = $rs->Fields($i);
}
$rowcount = 0;
while (!$rs->EOF) {
        for ($i=0; $i < $num_columns; $i++) {
                $arr[$i][$rowcount] = $fld[$i]->value;
        }
        $rowcount++;                    // increments rowcount
        $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = NULL;
$conn = NULL;

?>

This produces the error: PHP has encountered an Access Violation at 2474FF04

You can also produce an Access Violation by trying to use MSXML Parser 3.0,
and by calling the loadXML() method.

I downloaded php 4.0.6-dev [2001-05-04] build from 
php4win32.sourceforge.net/releases/php-4.0.6-dev-20010504.exe

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

[2001-05-08 16:30:55] [EMAIL PROTECTED]
could you provide a short snippet, i can't reproduce this.
are you using the cgi or the isapi version ?

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

[2001-05-04 22:54:14] [EMAIL PROTECTED]
Same bug, access violation using ADODB and MSXML Parser,
but using a 4.0.6 build, dated 2001-05-04.


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

The remainder of the comments for this report are too long.  To view the rest of the 
comments, please view the bug report online.

Full Bug description available at: http://bugs.php.net/?id=10580


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to