3.1.5.2.6 Receiving a CPMSetBindingsIn Request

When the server receives a CPMSetBindingsIn message request from a client, the server MUST do the following:

  1. Check whether the client has a query associated with it. If this is not the case, the server MUST report a STATUS_INVALID_PARAMETER (0xC000000D) error.

  2. Check whether the cursor handle passed is in the list of the client's cursor handles. If this is not the case, the server MUST report an E_FAIL (0x80004005) error.

  3. Verify that binding information is valid (that is, the column at least specifies value, length, or status to be returned; no overlap in bindings for value, length, or status; and value, length, and status fit in the specified row size) and if not, report a DB_E_BADBINDINFO (0x80040E08) error.

  4. Save the binding information associated with the columns specified in the aColumns field. If this step fails for any reason, the server MUST report that an error was encountered.

  5. Respond to the client with a message header (only) with _msg set to CPMSetBindingsIn, and _status set to the results of the specified binding.