Cursors
The RWDBCursor class of the DB Interface Module is implemented for Sybase Open Client Client-Library using client ct_cursor() routines. These routines are subject to many restrictions:
*Scrolling writable cursors are not supported by the Client-Library. Write operations on scrolling cursors result in an RWDBStatus::notSupported error.
*There must be a unique index on every table involved in every cursor operation. An error results if any table does not have a unique index.
*Since Client-Library supports server side cursors, updating a primary key column may result in problems such as multiple updates to the same row. In general, applications should only update columns that do not have primary key constraint. Neither this Access Module nor Client-Library prevents the application from updating a primary key column.
*For sequential cursors, the application can control the number of rows fetched from the server to improve network performance, using the rowsPerCursorFetch() method on RWDBSybCtLibSystemHandle, a system handle class that provides access to the native Sybase API. (For more information, see its entry in the SourcePro API Reference Guide.) Regardless of the number of rows fetched from the server, calling RWDBCursor::fetchRow() always returns a single row and the rest of the rows are internally buffered within Client-Library.
*In the case of multiple row fetches, the current row as perceived by the server is not the same as the current row as perceived by the application. Client-Library implements updates for the current row as perceived by the application.