----- Original Message -----
From: Ang Sei Heng <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, May 15, 2001 7:18 PM
Subject: Oracle Database...


> Hello Everyone,
>
> Recently I did some database connection to Oracle via DBD::Oracle.
>
> I manage to conncec to server, the follow statement does not
> work:
>
> -- ## Begin Perl Code ## --
>
> my $sqlcmd = "select * from street";
>
> my $tbh = $dbh->prepare($sqlcmd);
>
> $tbh->execute;
>
> if( $tbh->rows == 0


$thb->rows does not what you think it does....

Below a little quote of the DBI documentation:

rows

$rv = $sth->rows;

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.

One alternative method to get a row count for a SELECT is to execute a
``SELECT COUNT(*) FROM ...'' SQL statement with the same ``...'' as your
query and then fetch the row count from that.


Reply via email to