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 Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: roland at daydream dot co dot uk
New email:
PHP Version: OS:

 

 [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

Pull Requests

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-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 19:01:30 2024 UTC