|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2000-09-12 12:21 UTC] jlim at natsoft dot com dot my
This example creates a connection object to a database, creates a recordset, then assigns the connection object to the recordset using ADO com objects.
<?
$dbc = new COM('ADODB.Connection');
$dbc->Provider = 'MSDASQL';
$dbc->Open('NWIND'); // standard sample access database northwind
$rs = new COM("ADODB.Recordset");
$rs->Open('select * from product',$dbc,3); // 3 = static cursor
?>
OUTPUT ERROR MESSAGE:
Warning: Invoke() failed: Exception occurred. in d:\Inetpub\wwwroot\php\bugado.php on line 6
PHP has encountered an Access Violation at 78002D15
The error is because the COM object $dbc is passed as a parameter to $rs.
I have the same code in ASP. Works fine.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 01:00:02 2025 UTC |
This example creates a connection object to a database, creates a recordset, then assigns the connection object to the recordset using ADO com objects. <? $dbc = new COM('ADODB.Connection'); $dbc->Provider = 'MSDASQL'; $dbc->Open('NWIND'); // standard sample access database northwind $rs = new COM("ADODB.Recordset"); $rs->Open('select * from product',$dbc,3); // 3 = static cursor ?> OUTPUT ERROR MESSAGE: Warning: Invoke() failed: Exception occurred. in d:\Inetpub\wwwroot\php\bugado.php on line 6 PHP has encountered an Access Violation at 78002D15 The error is because the COM object $dbc is passed as a parameter to $rs. I have the same code in ASP. Works fine. ========================= I have found the problem in COM.c 443 static void php_pval_to_variant(pval *pval_arg, VARIANTARG *var_arg) 444 { 445 OLECHAR *unicode_str; 446 447 switch (pval_arg->type) { 448 case IS_OBJECT: 449 case IS_ARRAY: 450 var_arg->vt = VT_EMPTY; 451 break; if IS_OBJECT, should check if it is COM object, and set var_arg->vt as appropriate John