Aracılığıyla paylaş


SqlPipe.SendResultsStart(SqlDataRecord) Yöntem

Tanım

İ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ı.

Ö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 .

Şunlara uygulanır

Ayrıca bkz.