SqlPipe.SendResultsStart(SqlDataRecord) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İstemciye geri gönderilecek bir sonuç kümesinin başlangıcını işaretler ve sonuç kümesini açıklayan meta verileri oluşturmak için kayıt parametresini kullanır.
public:
void SendResultsStart(Microsoft::SqlServer::Server::SqlDataRecord ^ record);
public void SendResultsStart(Microsoft.SqlServer.Server.SqlDataRecord record);
member this.SendResultsStart : Microsoft.SqlServer.Server.SqlDataRecord -> unit
Public Sub SendResultsStart (record As SqlDataRecord)
Parametreler
- record
- SqlDataRecord
SqlDataRecord Meta verilerin ayıklandığı ve sonuç kümesini açıklamak için kullanıldığı bir nesne.
Özel durumlar
şeklindedir recordnull.
record sütunu yok veya başlatılmadı.
veya dışında SendResultsRow(SqlDataRecord)SendResultsEnd() bir yöntem yönteminden SendResultsStart(SqlDataRecord) sonra çağrıldı.
Örnekler
Aşağıdaki örnek yeni SqlDataRecord bir ve oluşturur SqlMetaData. Örnek daha sonra yöntemini kullanarak bir sonuç kümesinin başlangıcını SendResultsStart işaretler, örnek verileri içeren kayıtları yöntemini kullanarak SendResultsRow istemciye geri gönderir ve sonuç kümesinin sonunu yöntemiyle SendResultsEnd işaretler.
[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcReturnResultSet()
{
// Create the record and specify the metadata for the columns.
SqlDataRecord record = new SqlDataRecord(
new SqlMetaData("col1", SqlDbType.NVarChar, 100),
new SqlMetaData("col2", SqlDbType.Int));
// Mark the begining of the result-set.
SqlContext.Pipe.SendResultsStart(record);
// Send 10 rows back to the client.
for (int i = 0; i < 10; i++)
{
// Set values for each column in the row.
record.SetString(0, "row " + i.ToString());
record.SetInt32(1, i);
// Send the row back to the client.
SqlContext.Pipe.SendResultsRow(record);
}
// Mark the end of the result-set.
SqlContext.Pipe.SendResultsEnd();
}
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub StoredProcReturnResultSet()
' Create the record and specify the metadata for the columns.
Dim record As New SqlDataRecord( _
New SqlMetaData("col1", SqlDbType.NVarChar, 100), _
New SqlMetaData("col2", SqlDbType.Int))
' Mark the begining of the result-set.
SqlContext.Pipe.SendResultsStart(record)
' Send 10 rows back to the client.
Dim i As Integer
For i = 0 To 9
' Set values for each column in the row.
record.SetString(0, "row " & i.ToString())
record.SetInt32(1, i)
' Send the row back to the client.
SqlContext.Pipe.SendResultsRow(record)
Next
' Mark the end of the result-set.
SqlContext.Pipe.SendResultsEnd()
End Sub
Açıklamalar
Yönetilen saklı yordamlar sonuç kümelerini uygulaması SqlDataReaderolmayan istemcilere gönderebilir. Bu yöntem ve SendResultsEndile SendResultsRow birlikte saklı yordamların istemciye özel sonuç kümeleri göndermesine izin verir.
SendResultsStart yöntemi bir sonuç kümesinin başlangıcını işaretler ve sonuç kümesini açıklayan meta verileri oluşturmak için kayıt parametresini kullanır. yöntemi kullanılarak SendResultsRow gönderilen sonraki tüm satırlar bu meta veri tanımıyla eşleşmelidir.
çağrısı SendResultsStartyaptıktan sonra yalnızca SendResultsRow ve SendResultsEnd çağrılabileceğini unutmayın. Aynı örneğindeki SqlPipe diğer herhangi bir yöntem bir InvalidOperationExceptionoluşturur. SendResultsEnd diğer yöntemlerin çağrılabileceği ilk duruma geri döner SqlPipe .
Denetim CLR yürütmesinden Transact-SQL'e döndükten sonra, CLR belleğine başlatılan statik veya yerel bir değişken kullanmayı denemeyin. Örneğin, denetim CLR'den döndürdüğünde kullanılacak bir işlem sınıfı SQLDataRecordörneğini depolamayın. Bir özel durum, işlem sınıfıdır SQLMetaData .