jeffteal has asked for the wisdom of the Perl Monks concerning the following question:

I have a dll that returns an ADODB recordset. I keep getting an OLE=HASH error when I call this function. Please help. Here's the code:

use Win32::OLE; $RS = new Win32::OLE("ADODB.RecordSet");

use Win32::OLE; $hl = new Win32::OLE('MY DLL REGISTERED IN ASSEMBLY.CLASS WITHIN DLL') or die $!;

$RS = $hl->FUNCTION WITHIN DLL THAT RETURNS a RECORDSET;

$h3 = $RS.RecordCount;

print $h3;

I can call other functions within DLL that return a string OK, but not ones that return a recordset. The print $h3 shows the hash error.

Replies are listed 'Best First'.
Re: accepting recordset from .net dll
by Corion (Patriarch) on May 13, 2011 at 06:17 UTC

    The dot "." is not how you access object members in Perl. Use the arrow, ->:

    print $RS->{RecordCount};
      This worked. Thank you!