Beefy Boxes and Bandwidth Generously Provided by pair Networks DiBona
Perl Monk, Perl Meditation
 
PerlMonks  

Did I get any records?

by THuG (Beadle)
on Jul 18, 2001 at 01:26 UTC ( #97462=perlquestion: print w/ replies, xml ) Need Help??
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.

Comment on Did I get any records?
Select or Download Code
Re: Did I get any records?
by TheoPetersen (Priest) on Jul 18, 2001 at 01:31 UTC
    It sounds as if $RS is coming back as undef or a plain scalar if the SQL doesn't return any records. You should check the return value of $dbConn->Execute("$SQL") before entering the while loop.
      You mean something like while ($RS && !$RS->{EOF})?
        Sounds good :)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://97462]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2014-04-20 17:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (485 votes), past polls