Perl Win32::OLE ADODB.Connection fails on Vista

Tim Adye T.J.Adye@rl.ac.uk
Fri Jun 19 16:39:00 GMT 2009


Hi,

I have been using the Cygwin Perl Win32::OLE module as a nice way to query
Access databases [*]. This worked fine on Windows XP (32-bit), but no longer
works on a new Vista (64-bit) machine. The initial connection

  $conn= Win32::OLE->new ('ADODB.Connection')

fails with

  Win32::OLE(0.1709) error 0x8007007e: "The specified module could not be
found"

Connecting to some other OLE applications (eg. Excel.Application) works OK.
The same ADODB script works fine from ActiveState Perl (at least for the
32-bit version; there is no 64-bit version of the Microsoft Access Driver,
so ActiveState Perl x64 fails at the next step). However I'd prefer to use
Cygwin Perl.

I upgraded Cygwin's Win32::OLE to the latest version (perl-5.10.0-5 comes
with Win32::OLE 0.1703, while the latest ActiveState Perl has Win32::OLE
0.1709), but that didn't help.

Does anyone have any ideas?

Thanks,
Tim.

[*] eg. the following will read all values from $field in $table of $file
(this example can be modified with an arbitrary SQL query).

  use Win32::OLE;
  Win32::OLE->Option (Warn => 3);
  my $conn= Win32::OLE->new ('ADODB.Connection') or die;
  $conn->Open ("PROVIDER=MSDASQL;".
               "DRIVER={Microsoft Access Driver (*.mdb)};".
               "DBQ=$file");
  my $rs= Win32::OLE->new ('ADODB.Recordset') or die;
  $rs->Open ("SELECT $field FROM $table", $conn, 1, 1);
  until ($rs->EOF) {
    print $rs->Fields ($field)->value, "\n";
    $rs->MoveNext;
  }
  $rs->Close;
  $conn->Close;

===========================  cut here  ============================
 Tim Adye      T.J.Adye@rl.ac.uk       http://hepunx.rl.ac.uk/~adye
 Atlas/BaBar Groups, Particle Physics Dept, Rutherford Appleton Lab



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list