Command states

Client-Library keeps track of a command’s current state. A command can be in any one of the following states.

Table A-1: Command states

Command state

Meaning

Idle

The application:

  • Has not yet initiated a command,

  • Has completely processed the results of the last command,

  • Has fetched all cursor rows but has not closed the Client-Library cursor, or

  • Has closed a Client-Library cursor that is still associated with unprocessed results.

Command initiated

The application called ct_command, ct_cursor, or ct_dynamic to initiate a command, but it has not yet sent it to the server.

Command sent

The application called ct_send to send a command to the server, but it has not yet called ct_results to set up result data for processing.

Non-fetchable results available

The application called ct_results and the result set contains no actual result data. Additional calls to ct_results are necessary.

Or:

The application called ct_fetch, which returned CS_END_DATA.

ANSI-style cursor end-data

The application called ct_fetch, which returned CS_END_DATA, and the CS_ANSI_BINDS property is set.

Fetchable results

The application called ct_results and the result set contains fetchable non-cursor results (compute results, return parameter results, regular row results, and stored procedure return status results). ct_fetch has not been called yet.

Fetchable cursor results

The application called ct_results and the result set contains fetchable cursor results. ct_fetch has not yet been called.

Fetchable nested command

The application initiated a cursor-close command (ct_cursor(CS_CURSOR_CLOSE)) before fetching from a result set that contains fetchable cursor results.

Sent fetchable nested command

The application called ct_send to send the cursor-close command to the server before fetching from a result set that contains fetchable cursor results.

Processing fetchable nested command

The application called ct_results to process the results of the cursor-close command before fetching from a result set that contains fetchable cursor results.

Fetching results

The application called ct_fetch at least once and is currently in the process of fetching results (compute results, return parameter results, regular row results, and stored procedure return status results).

Fetching cursor results

The application called ct_fetch at least once and is currently in the process of fetching cursor row results.

Fetching nested command

The application initiated one of the following commands while fetching from a result set that contains cursor results:

  • Cursor-close (ct_cursor(CS_CURSOR_CLOSE))

  • Cursor-update (ct_cursor(CS_CURSOR_UPDATE))

  • Cursor-delete (ct_cursor(CS_CURSOR_DELETE))

Sent fetching nested command

The application called ct_send to send the cursor- close, cursor-update, or cursor-delete command to the server while fetching from a result set that contains cursor results.

Processing fetching nested command

The application called ct_results to process the results of the cursor-close, cursor-update, or cursor-delete command while fetching from a result set that contains cursor results.

Result set canceled

The application canceled the current command (ct_cancel(CS_CANCEL_ALL)). An application can call ct_results once more to return the command to an Idle state.

Undefined

The command structure is in an undefined state. Call ct_cancel(CS_CANCEL_ALL).

In receive passthrough

The application called ct_recvpassthru and CS_PASSTHRU_MORE was returned.

In send passthrough

The application called ct_sendpassthru and CS_PASSTHRU_MORE was returned.