Managed stored procedures can send result sets to clients that are not implementing a SqlDataReader. This method, along with SendResultsRow and SendResultsEnd, allow stored procedures to send custom result sets to the client.
The SendResultsStart method marks the beginning of a result set, and uses the record parameter to construct the metadata that describes the result set. All the subsequent rows, sent using the SendResultsRow method, must match that metadata definition.
Note that after calling SendResultsStart, only SendResultsRow and SendResultsEnd can be called. Any other method in the same instance of SqlPipe throws an InvalidOperationException. SendResultsEnd sets SqlPipe back to the initial state where other methods can be called.
After control returns to Transact-SQL from CLR execution, do not attempt to use a static or local variable initialized to CLR memory. For example, do not store an instance of an in process class, for example SQLDataRecord, which will be used after control returns from CLR. One exception is the SQLMetaData in process class.