Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: Can't locate object method "row" via package "DBI::st" error !

by dtharby (Acolyte)
on Jun 09, 2005 at 08:44 UTC ( [id://465015]=note: print w/replies, xml ) Need Help??


in reply to Re: Can't locate object method "row" via package "DBI::st" error !
in thread Can't locate object method "row" via package "DBI::st" error !

Sure, should have down so from the start
use DBI; $DSN='.....'; $dbh = DBI->connect("dbi:ODBC:$DSN") or die "$DBI::errstr\n"; my $sth = $dbh->prepare('SELECT * FROM Test WHERE ServerName = ?') or die "Couldn't Prepare statement: " . $dbh->errstr; print "Enter ServerName> "; while ($ServerName = <>) { my @data; chomp $ServerName; $sth->execute($ServerName); # Read the matching records and print out while (@data = $sth->fetchrow_array()) { my $ServerType = $data[1]; my $WeekDays = $data[5]; print "\t$ServerType $ServerName $WeekDays\n"; } if ($sth->row == 0) { print "No servers matched \n\n"; } $sth->finish; print"\n"; print "Enter ServerName> "; } $dbh->disconnect;
thanks
  • Comment on Re^2: Can't locate object method "row" via package "DBI::st" error !
  • Download Code

Replies are listed 'Best First'.
Re^3: Can't locate object method "row" via package "DBI::st" error !
by gellyfish (Monsignor) on Jun 09, 2005 at 08:53 UTC

    There is no method row on the statement handle - there is rows which I think is what you want instead.

    /J\

Re^3: Can't locate object method "row" via package "DBI::st" error !
by dbwiz (Curate) on Jun 09, 2005 at 09:07 UTC

    Be aware that $sth->rows returns sensible results only when used with row-affecting SQL statements.

    Check the DBI docs:

    Returns the number of rows affected by the last row affecting command, or -1 if the number of rows is not known or not available.

    Generally, you can only rely on a row count after a non-SELECT execute (for some specific operations like UPDATE and DELETE), or after fetching all the rows of a SELECT statement.

    For SELECT statements, it is generally not possible to know how many rows will be returned except by fetching them all. Some drivers will return the number of rows the application has fetched so far, but others may return -1 until all rows have been fetched. So use of the rows method or $DBI::rows with SELECT statements is not recommended.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://465015]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2024-04-23 09:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found