php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #11655 Ivoking COM will not work.
Submitted: 2001-06-25 06:49 UTC Modified: 2001-06-27 08:50 UTC
From: roland at daydream dot co dot uk Assigned:
Status: Closed Package: COM related
PHP Version: 4.0.6 OS: Win NT4.0 SP6a
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
44 - 26 = ?
Subscribe to this entry?

 
 [2001-06-25 06:49 UTC] roland at daydream dot co dot uk
This does not work, but worked unchanged in PHP 4.0.4pl1

$myDSN = "DSN=dbEmpty;DBQ='c:\\test.mdb';DRIVER={Microsoft Access Driver(*.mdb)};UID='root';PW='';";

$dbc = new COM("ADODB.Connection");
$dbc->Provider = "MSDASQL";
$dbc->Open($myDSN);

Warning: Invoke() failed: Exception occurred (line $dbc->Open($myDSN); )

Setting from php.ini:
;com.typelib_file = 
com.allow_dcom = On


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-06-26 10:20 UTC] phanto@php.net
in which line does the warning occur ?
 [2001-06-26 10:29 UTC] roland at daydream dot co dot uk
The exception occurs in line 5, which is

$dbc->Open($myDSN); 


 [2001-06-27 07:12 UTC] phanto@php.net
i can't reproduce this. are you sure that your mdb is in the right place ? i get this kind of error if the DSN is invalid.

harald
 [2001-06-27 08:50 UTC] roland at daydream dot co dot uk
Thank you, you are completely right. I had a closer look at this and found the following problem with the connection string:

To achieve a dsn-less connection, I used a valid System-DSN pointing to an empty .mdb file. The DBQ-Attribute pointed to the actual database. This does not work under PHP, it has to be the same datasource as in the DSN (e.g. in ColdFusion this is the only way of creating a dsn-less connection).

To get a dsn-less connection with PHP is actually even simpler, done with this connection string:

$myDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\test.mdb;User='root';Password='';";


(note that in my post above is a space missing, instead of

Microsoft Access Driver(*.mdb), it should read 
Microsoft Access Driver (*.mdb)
-----------------------^

, which will prevent it from working correctly, too.)


 
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Thu Jul 07 04:03:36 2022 UTC