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' );