Client-Library control structures have properties. Some property values determine how Client-Library behaves, while others are just information associated with the control structure.
For example:
CS_TIMEOUT is a CS_CONTEXT structure property. Its value determines how long Client-Library waits for a server response before raising a timeout error. DB-Library applications specify a timeout value with dbsettime, and the timeout value is a hidden DB-Library global variable.
CS_NETIO is a CS_CONNECTION structure property. Its value determines whether network I/O is synchronous, fully asynchronous, or deferred asynchronous. DB-Library has no similar concept. A DB-Library application calls different routines to get synchronous or asynchronous behavior.
CS_USERNAME is a CS_CONNECTION structure property. Its value specifies the user name to log in to the server. The Client-Library application sets the username before opening a connection with ct_connect. With the connection open, the property is read-only. A DB-Library application specifies a packet size by calling the DBSETLUSER macro to change the contents of the LOGINREC structure; when dbopen is called, the LOGINREC password becomes the DBPROCESS username.
CS_USERDATA is a CS_CONNECTION structure property and a CS_COMMAND structure property. Its value is the address of user data that is associated with a particular connection or command structure. The use of the CS_USERDATA property is similar to the use of dbgetuserdata and dbsetuserdata in a DB-Library application.