Mon Jan 24 17:05:57 2011: Request 65052 was acted upon.
Transaction: Correspondence added by rkito...@cpan.org
       Queue: Win32-OLE
     Subject: Re: [rt.cpan.org #65052] Cannot create ADODB.Connection object 
under Cygwin
   Broken in: 0.1709
    Severity: Important
       Owner: Nobody
  Requestors: rkito...@cpan.org
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=65052 >


On 1/24/2011 3:59 PM, j...@activestate.com via RT wrote:
> <URL: https://rt.cpan.org/Ticket/Display.html?id=65052>
>
> On Mon, 24 Jan 2011, Reini Urban via RT wrote:
>>> Can you please run with warnings enabled?  Win32::OLE will print
>>> additional diagnostics on OLE calls when warnings are on.
>>
>> $ perl -MWin32::OLE -wle 'print Win32::OLE->new("ADODB.Connection")'
>> Win32::OLE(0.1709) error 0x8007007e: "The specified module could not be
>> found" at -e line 1
>>          eval {...} called at -e line 1
>> Use of uninitialized value in print at -e line 1.
>
> [...]
>
>>> Is this just 32-bit ActivePerl on the same machine, or on a different
>>> one?
>>
>> I crosschecked with strawberry on the same machine, where
>> ADODB.Connection is registered.
>> c:\strawberry>  perl -MData::Dumper -MWin32::OLE -le "print
>> Dumper(Win32::OLE->new(q(ADODB.Connection)))"
>> $VAR1 = bless( {
>>                   'Properties' =>  bless( {
>
> [...]
>
> Could you try running Cygwin Perl from cmd.exe instead of bash?  I've
> found several references  with Google that certain COM components (WMI,
> ADODB) cannot be instantiated when the program is started from bash,
> but work fine when started from cmd.exe.
>
> If that is the case, start looking into differences in those environments,
> especially settings of PATH and maybe COMSPEC, and try to copy setting
> from cmd.exe to bash until it starts working.
>
> Cheers,
> -Jan

That is indeed the case.

There are a whole bunch of warnings, but the object is returned:

c:\users\rkitover>\cygwin\bin\perl -MWin32::OLE -MData::Dumper -wle 
"print Dumper(Win32::OLE->new('ADODB.Connection'))"
Win32::OLE(0.1709) error 0x8002000e: "Invalid number of parameters"
     in METHOD/PROPERTYGET "Item" at 
/usr/lib/perl5/5.10/i686-cygwin/Data/Dumper.pm line 190
Win32::OLE(0.1709) error 0x8002000e: "Invalid number of parameters"
     in METHOD/PROPERTYGET "Item" at 
/usr/lib/perl5/5.10/i686-cygwin/Data/Dumper.pm line 190
OLE exception from "ADODB.Connection":

Operation is not allowed when the object is closed.

Win32::OLE(0.1709) error 0x80020009: "Exception occurred"
     in METHOD/PROPERTYGET "DefaultDatabase" at 
/usr/lib/perl5/5.10/i686-cygwin/Data/Dumper.pm line 190
$VAR1 = bless( {
                  'Properties' => bless( {
                                           'Count' => 14,
                                           'Item' => undef
                                         }, 'Win32::OLE' ),
                  'ConnectionString' => 'Provider=MSDASQL.1',
                  'CommandTimeout' => 30,
                  'ConnectionTimeout' => 15,
                  'Version' => '6.1',
                  'Errors' => bless( {
                                       'Count' => 0,
                                       'Item' => undef
                                     }, 'Win32::OLE' ),
                  'DefaultDatabase' => undef,
                  'IsolationLevel' => 4096,
                  'Attributes' => 0,
                  'CursorLocation' => 2,
                  'Mode' => 0,
                  'Provider' => 'MSDASQL.1',
                  'State' => 0
                }, 'Win32::OLE' );

Reply via email to