http://www.perlmonks.org?node_id=97462

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

In a PerlScript ASP, I am querying an Access DB via ADODB. I am using while (!RS->{EOF}) to step through and parse the data that is returned, but...

what if no records are returned? How can I tell?

A little background as to what caused this problem.

With the following code snippet I get the desired result.

<% foreach $scannerID (keys(%scanners)) { $SQL = "SELECT Documents, Fronts, FrontsBlank, FrontsRescanned, Fr +ontsDeleted, Rears, RearsBlank, RearsRescanned, RearsDeleted, ProcessSt +artDate FROM tblXVCSBatch WHERE ScanStationID = $scannerID"; # ProcessStartDate >= $DateQuote $dispStartDate $DateQuote +AND # ProcessStartDate <= $DateQuote $dispEndDate $DateQuote"; $RS = $dbConn->Execute("$SQL"); while (!$RS->{EOF}) { $scanners{$scannerID}->{Batches}++; $scanners{$scannerID}->{Documents} += $RS->Fields(0)->{Value}; $scanners{$scannerID}->{Fronts} += $RS->Fields(1)->{Value}; $scanners{$scannerID}->{Fronts_Blank} += $RS->Fields(2)->{Value} +; $scanners{$scannerID}->{Fronts_Rescanned} += $RS->Fields(3)->{Va +lue}; $scanners{$scannerID}->{Fronts_Deleted} += $RS->Fields(4)->{Valu +e}; $scanners{$scannerID}->{Rears} += $RS->Fields(5)->{Value}; $scanners{$scannerID}->{Rears_Blank} += $RS->Fields(6)->{Value}; $scanners{$scannerID}->{Rears_Rescanned} += $RS->Fields(7)->{Val +ue}; $scanners{$scannerID}->{Rears_Deleted} += $RS->Fields(8)->{Value +}; $RS->MoveNext(); } } %>

But if I change the SQL statement like so...

$SQL = "SELECT Documents, Fronts, FrontsBlank, FrontsRescanned, Fr +ontsDeleted, Rears, RearsBlank, RearsRescanned, RearsDeleted, ProcessSt +artDate FROM tblXVCSBatch WHERE ScanStationID = $scannerID AND ProcessStartDate >= $DateQuote $dispStartDate $DateQuote A +ND ProcessStartDate <= $DateQuote $dispEndDate $DateQuote";

I get a Can't call method "Fields" on unblessed reference error at the first $RS->Fields line.