3.3.5.3 Execute Event Processing

The server receives an rdsExecuteRequest from the client. The server will process out the parameters and fashion a call to the Execute method. The parameters are processed according to the algorithm described in section 3.3.1.2.

The RDS Transport Protocol server MUST use the rdsConnectionString (see section 2.2.3.13.1) to establish a connection to the data store. If a connection is not established, the RDS Transport Protocol server MUST return an error to the client indicating why the connection could not be established (see section 3.3.5.1.2). The RDS Transport Protocol server SHOULD<82> take caution to not expose internal information in this error response.

The RDS Transport Protocol server MUST process any shape commands (see section 3.3.5.2.1).

The RDS Transport Protocol server MUST process the rdsSQLCommandParameters array according to the algorithm in section 3.3.1.3.

The RDS Transport Protocol server SHOULD send the SQL-92 commands to the data store specified in the rdsConnectionString.

The RDS Transport Protocol server SHOULD handle the SQL Command Execution Timer (see section 3.3.2.1). If the timer fires, the RDS Transport Protocol server MUST return an error to the client using the error processing rules defined in Error Handling (see section 3.3.5.1.2).

The RDS Transport Protocol server then builds up a local RecordSet to accumulate results coming from the backend data stores.

The RDS Transport Protocol server MUST then construct an rdsExecuteResponse. The RecordSet is used to create the TableGram property. The contents of the rdsExecuteResponse are sent back to the client in the reply. The form of the rdsExecuteResponse depends on the form of the rdsExecuteRequest received as follows.

Request received

Response sent

rdsExecuteRequest8Args

rdsExecuteResponse8Args

rdsExecuteRequest9Args

rdsExecuteResponse9Args

rdsExecuteRequest10Args

rdsExecuteResponse10Args