Hi Param!
Few defintions from BOL >>
client cursor :
In a client cursor, a default result set is used to cache the entire result set on the client and all cursor operations are performed against this client cache. None of the server cursor functionality of Microsoft SQL Server 2000 is used. Client cursors support only forward-only and static cursors, not keyset-driven or dynamic cursors.
Server cursor :
A cursor implemented on the server. The cursor itself is built at the server, and only the rows fetched by an application are sent to the client. This cursor would not use the client cache.
Server Cursors vs. Client Cursors
=================================
There are several advantages to using server cursors instead of client cursors:
Performance
-----------
If you are going to access a fraction of the data in the cursor (typical of many browsing applications), using server cursors provides optimal performance because only fetched data is sent over the network. Client cursors cache the entire result set on the client.
Additional cursor types
-----------------------
If the SQL Server ODBC driver used only client cursors, it could support only forward-only and static cursors. By using API server cursors the driver can also support keyset-driven and dynamic cursors. SQL Server also supports the full range of cursor concurrency attributes only through server cursors. Client cursors are limited in the functionality they support.
More accurate positioned updates
--------------------------------
Server cursors directly support positioned operations, such as the ODBC SQLSetPos function or UPDATE and DELETE statements with the WHERE CURRENT OF clause. Client cursors, on the other hand, simulate positioned cursor updates by generating a Transact-SQL searched UPDATE statement, which leads to unintended updates if more than one row matches the WHERE clause conditions of the UPDATE statement.
Memory usage
------------
When using server cursors, the client does not need to cache large amounts of data or maintain information about the cursor position because the server does that.
Multiple active statements
--------------------------
When using server cursors, no results are left outstanding on the connection between cursor operations. This allows you to have multiple cursor-based statements active at the same time.
I think this content is enough to understand. For further enquiries mail me at -
[email protected]
-Som Dutt
-------------------------
http://somdutt.blogspot.com
http://doeaccpapers.com