Re: rowcount not available? [NC]
"Mittel, Alexander" <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <5EA97F57AE4E9D4BBC7879FEF671C0DA5355893CC8@DEFTHW99E15MSX.ww902.siemens.net> |
Hi Cedric, "Asche über mein Haupt" - I should have been quit if I don't know what DBCOUNT(dbproc) is. MS says, that something changes with SET ROWCOUNT, but for SQL Server 2005 MS said the same. http://msdn.microsoft.com/en-us/library/ms188774.aspx http://jmkehayias.blogspot.com/2008/12/set-rowcount-functionality-changes.html Maybe now they really changed something in SQL Server 2008. Unfortunately I have no v2008 to test. Mfg Alexander -----Ursprüngliche Nachricht----- Von: [email protected] [mailto:[email protected]] Im Auftrag von Cedric ROUVRAIS Gesendet: Freitag, 14. August 2009 16:25 An: FreeTDS Development Group Betreff: Re: [freetds] rowcount not available? [NC] Hi Alex, I am reporting a bug in the dblib.c because the function dbcount(DBPROCESS * dbproc) returns -1 instead of returning the number of rows affected. So this is not a MS Sql issue but a problem in FreeTDS/dblib The problem can be seen at the bsqldb.c function with this code: /* * Get row count, if available. */ if (!options.fquiet) { if (DBCOUNT(dbproc) > -1) { fprintf(options.output, "(%d rows affected)\n", DBCOUNT(dbproc)); } // Removed the following code in order to replicate SYBASE ISQL behaviour. //else fprintf(stderr, "@@rowcount not available\n"); } I commented out the fprintf in my code to replicate the behaviour of ISQL from Sybase, however the statement is incorrect in the sense that the value of @@rowcount is available and set correctly (I checked this by doing select @@ROWCOUNT in bsqldb and it correctly returned 10). Hopes this clarifies, Cedric |------------------------------ | "Mittel, | Alexander" | <Alexander.Mittel | @siemens.com> Hi, this is a FreeTDS-mailing list, not a SQLServer-forum :-) But: "set rowcount nn" is something completly different then "@@ROWCOUNT". "set rowcount 10" limits the number of returned rows when doing a SELECT. If a table has 20 rows then only 10 rows will be returned. "@@ROWCOUNT" is set by SQLServer and contains the number of affected rows, i.e. with UPDATE Maybe look at MS doc to see Mfg Alexander -----Ursprüngliche Nachricht----- Von: [email protected] [mailto:[email protected]] Im Auftrag von Cedric ROUVRAIS Gesendet: Donnerstag, 13. August 2009 21:33 An: FreeTDS Development Group Betreff: [freetds] rowcount not available? [NC] Hi, Me again, anybody have any clues? When I execute select @@ROWCOUNT I get the correct count that is to say. Why would the rowcount not be available ? a++ Cedric __________________ Hi guys, I have come across an interesting behaviour with SQL Server 2008, when you use the instruction: "set rowcount nn" such as "set rowcount 10" then DBCOUNT(dbproc) returns -1. Anyone have any ideas??? Thanks, Cedric _______________________________________________ FreeTDS mailing list [email protected] http://lists.ibiblio.org/mailman/listinfo/freetds