Sybase clients and servers communicate using the Tabular Data Stream™ (TDS) protocol. Different TDS versions support different features. For example, 4.0 TDS is the earliest version that supports remote procedure calls.
The TDS version level is determined when a connection is established. When an application calls ct_connect to connect to a server, Client-Library presents the server with a preferred TDS level. If the server cannot support this TDS level, it negotiates with Client-Library to find a TDS level that is acceptable.
For example, when an 12.5 Client-Library application connects to SQL Server 11.0, the default TDS level that the application requests is 5.0 TDS. Because SQL Server 11.0 does not support 5.0 TDS, it replies with a request to use version 4.x of TDS instead. Because 4.x TDS is acceptable to 12.5 Client-Library, the connection is established with a TDS version level of CS_TDS_4x.
jConnect does not negotiate TDS version -- if the server doesn't support TDS 5.0 jConnect will terminate the connection.
Capabilities describe which client requests and which server responses are sent over a connection. By default, capabilities are based on the TDS version level, but a client application can be coded to further limit response capabilities and a server can be coded to further limit request capabilities.
When a Client-Library calls ct_capability:
Before opening a connection, it sets up the connection structure to tell a server not to send a particular type of response on a connection.
After opening a connection, it determines whether the connection supports a particular type of request or response.
For information on how an Open Server application sets or retrieves capabilities, see the Open Server Server-Library/C Reference Manual.
There are two types of capabilities:
CS_CAP_REQUEST capabilities, or request capabilities, describe the types of client requests that can be sent on a server connection.
CS_CAP_RESPONSE capabilities, or response capabilities, describe the types of server responses that a connection does not wish to receive.
For a list of capabilities, see the reference page for ct_capability.