Re: Query returns -1 if row present (DBI, SQL Server 2000)



int eighty wrote:
Hello,

I am using the DBI module to interface with a SQL Server 2000 database
-- connection, INSERT, UPDATE, and SELECT (when 0 rows exist in
resultset) are fine. However, if the resultset contains a row, a
value of -1 is returned. The query is very simple:

my $sth = $dbh->prepare(q{SELECT TOP 1 id FROM host WHERE ip = ?});
$sth->execute($ip);
print "Looked up $ip: " . $sth->rows . " ($DBI::errstr)\n";

if ($sth->rows == 0) {
# do something
}

elsif ($sth->rows > 0) {
# do something else
}

else {
# error
}

I do not believe this to is a permission problem with SQL Server as
the initial SELECT runs and jumps properly when $sth->rows is 0.
However the code always ends up in the else block if a row is returned
from the initial SELECT. The SELECT query also runs fine in Query
Analyzer when entered manually. Oh, it may also be worth mentioning
that $DBI::errstr is empty after the execute call for the initial
SELECT query.

Possibly, reading the documentation will help.

"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. "

[ continue reading docs for more information.]
.



Relevant Pages

  • Re: When do selects execute for multiple resultsets
    ... SQL Server executes each query and stops when its ... When the first resultset is ... The CommandTimeout is measured from the time you execute the query until the ...
    (microsoft.public.dotnet.framework.adonet)
  • Query returns -1 if row present (DBI, SQL Server 2000)
    ... I am using the DBI module to interface with a SQL Server 2000 database ... -- connection, INSERT, UPDATE, and SELECT (when 0 rows exist in ... resultset) are fine. ... The SELECT query also runs fine in Query ...
    (comp.lang.perl.misc)
  • Re: Query returns -1 if row present (DBI, SQL Server 2000)
    ... resultset) are fine. ... The SELECT query also runs fine in Query ... reading the documentation will help. ... "Returns the number of rows affected by the last row affecting command, ...
    (comp.lang.perl.misc)
  • Re: Recordset or Object is closed HELP PLEASE!
    ... Are you sure that in all instances of the SQL statement, ... actually have a resultset? ... > different query that is simpler. ... > SQL Server the query is giving me that error:'3704' ...
    (microsoft.public.excel.programming)
  • Re: Insert command not appending to table
    ... SELECT query, if you want the resultset to be in a specific order. ... example, in this case, if you have a datetime column in your table that has ... Vyas, MVP (SQL Server) ...
    (microsoft.public.sqlserver.programming)