Re: rowcount not available? [NC]

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
Cedric ROUVRAIS wrote:
> When I execute select @@ROWCOUNT I get
> the correct count that is to say. Why would the rowcount not be
> available ?

The server knows the rowcount after a statement completes.  For
non-SELECT, that's when control returns to the application after
dbsqlexec(). For SELECT, that's after the last row is fetched by client,
when dbnextrow() returns NO_MORE_ROWS.  (That is why @@rowcount is always
right: you can't select @@rowcount until the prior statement completes.)  

Whether or not the rowcount is returned to the client depends on a
connection option: SET NOCOUNT {ON|OFF}.  

If you think db-lib is wrong, that it reports the rowcount as unavailable
when in fact it *is* available, first confirm: using TDSDUMP, see if a
rowcount packet was sent.  

http://www.freetds.org/tds.html#t253

The DONE packet should have the "rowcount valid" bit set, and the rowcount
should be correct.  If both those are true for your packet, dbrows()
should succeed.  

HTH.  

--jkl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.