Guys lease help me out I think I'm close, but I'm missing something.
Background
I'm rewriting a SQL CLR assembly (stored procedure), my assembly contacts another resource and gets back XML. I want to return this XML as a recordset, NOT a scalar value.
From what I've seen, this is how to return a recordset:
SqlContext.Pipe.Send(mySqlDataReader)
The Send method takes in 3 possible parameters:
public void Send(string message);
public void Send(SqlDataRecord record);
public void Send(SqlDataReader reader);
The SqlDataReader class does not have a constructor, how does SqlCommand.ExecuteReader() return one?
What I think I need to do
- Create my own class inheriting from IDataReader.
- Make this class consume the XML, and expose it as records (like a DataReader).
- Override SqlDataReader and pass this to SqlContext.Pipe.Send(mySqlDataReader) ???
This is where it gets fuzzy.