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 (RPCs).
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 the 15.0 Client-Library application connects to Adaptive Server version 11.0, the default TDS level that the application requests is 5.0 TDS. Because Adaptive 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 15.0 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.