2.2.7.7 DONEINPROC

Token Stream Name:

 DONEINPROC

Token Stream Function:

Indicates the completion status of a SQL statement within a stored procedure.

Token Stream Comments

  • The token value is 0xFF.

  • A DONEINPROC token is sent for each executed SQL statement within a stored procedure.

  • A DONEINPROC token MUST be followed by another DONEPROC token or a DONEINPROC token.

Token Stream-Specific Rules:

 TokenType        =   BYTE
 Status           =   USHORT
 CurCmd           =   USHORT
 DoneRowCount     =   LONG / ULONGLONG;  (Changed to ULONGLONG in TDS 7.2)

The type of the DoneRowCount element depends on the version of TDS.

Token Stream Definition:

 DONEINPROC       =   TokenType
                      Status
                      CurCmd
                      DoneRowCount

Token Stream Parameter Details:

 Parameter

 Description

TokenType

DONEINPROC_TOKEN

Status

The Status field MUST be a bitwise 'OR' of the following:

  • 0x1: DONE_MORE. This DONEINPROC message is not the final DONE/DONEPROC/DONEINPROC message in the response; more data streams are to follow.

  • 0x2: DONE_ERROR. An error occurred on the current SQL statement or execution of a stored procedure was interrupted. A preceding ERROR token SHOULD be sent when this bit is set.

  • 0x4: DONE_INXACT. A transaction is in progress.<46>

  • 0x10: DONE_COUNT. The DoneRowCount value is valid. This is used to distinguish between a valid value of 0 for DoneRowCount or just an initialized variable.

  • 0x100: DONE_SRVERROR. Used in place of DONE_ERROR when an error occurred on the current SQL statement that is severe enough to require the result set, if any, to be discarded.

CurCmd

The token of the current SQL statement. The token value is provided and controlled by the application layer, which utilizes TDS. The TDS layer does not evaluate the value.

DoneRowCount

The count of rows that were affected by the SQL statement. The value of DoneRowCount is valid if the value of Status includes DONE_COUNT.