3.3.5.4 Query Event Processing

The server receives an rdsQueryRequest message from the client. The server will process out the parameters and fashion a call to the Query 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<83> take caution to not expose internal information in this error response.

The RDS Transport Protocol server processes any parameterless shape and SQL commands (see section 3.3.5.2.1).

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 rdsQueryResponse. The RecordSet is used to create the TableGram property. The contents of the rdsQueryResponse are sent back to the client in the reply.