Invocación de procedimientos almacenados de CLR

En resumen, ¿dónde puedo encontrar un código de muestra del lado del cliente C # / VB que llame al procedimiento almacenado CLR con algún argumento (como un dato sqlxml) y reciba un datareader u otra forma de resultado?

Además, ¿cómo recibo periódicamente la información del proceso almacenado de CLR enviado a través del método SQlContext.Pipe.Send ()?

// run a stored procedure that takes a parameter public void RunStoredProcParams() { SqlConnection conn = null; SqlDataReader rdr = null; // typically obtained from user // input, but we take a short cut string custId = "FURIB"; Console.WriteLine("\nCustomer Order History:\n"); try { // create and open a connection object conn = new SqlConnection("Server=(local);DataBase=Northwind;Integrated Security=SSPI"); conn.Open(); // 1. create a command object identifying // the stored procedure SqlCommand cmd = new SqlCommand( "dbo.CustOrderHist", conn); // 2. set the command object so it knows // to execute a stored procedure cmd.CommandType = CommandType.StoredProcedure; // 3. add parameter to command, which // will be passed to the stored procedure cmd.Parameters.Add( new SqlParameter("@CustomerID", custId)); // execute the command rdr = cmd.ExecuteReader(); // iterate through results, printing each to console while (rdr.Read()) { Console.WriteLine( "Product: {0,-35} Total: {1,2}", rdr["ProductName"], rdr["Total"]); } } finally { if (conn != null) { conn.Close(); } if (rdr != null) { rdr.Close(); } } } } enter code here 
 string connectionString = ConfigurationManager.AppSettings["ConnectDB"]; SqlConnection sn = new SqlConnection(connectionString); SqlParameter[] sqlParameters = new SqlParameter[1]; sn.Open(); SqlCommand dCmd = new SqlCommand("dbo.HelloWorld", sn); dCmd.CommandType = CommandType.StoredProcedure; SqlDataReader rdr = null; rdr = dCmd.ExecuteReader(); while (rdr.Read()) { for (int i = 0; i < rdr.FieldCount; i++) Response.Write(rdr[i]); } sn.Close(); } 

De la misma manera que llamas a los procedimientos ordinarios. Tal vez…

 EXEC StoredProcedure1 

Escribí un blog hace mucho tiempo atrás: escriba su primer procedimiento almacenado de SQL Server CLR

Sé que normalmente he creado un procedimiento almacenado T-SQL regular que llama a mis funciones CLR o procesos almacenados. Entonces pueden tratarse como todos los demás procedimientos almacenados.

  // Create a record object that represents an individual row, including it's metadata. SqlDataRecord record = new SqlDataRecord(new SqlMetaData("stringcol", SqlDbType.NVarChar, 128)); // Populate the record. record.SetSqlString(0,( "Hello World!" + System.DateTime.Now)); // Send the record to the client. SqlContext.Pipe.Send(record);