Freigeben über


Scripts.ExecuteStoredProcedureStreamAsync Methode

Definition

Überlädt

ExecuteStoredProcedureStreamAsync(String, PartitionKey, Object[], StoredProcedureRequestOptions, CancellationToken)

Führt eine gespeicherte Prozedur für einen Container als asynchronen Vorgang im Azure Cosmos-Dienst aus und ruft einen Stream als Antwort ab.

ExecuteStoredProcedureStreamAsync(String, Stream, PartitionKey, StoredProcedureRequestOptions, CancellationToken)

Führt eine gespeicherte Prozedur für einen Container als asynchronen Vorgang im Azure Cosmos-Dienst aus und ruft einen Stream als Antwort ab.

ExecuteStoredProcedureStreamAsync(String, PartitionKey, Object[], StoredProcedureRequestOptions, CancellationToken)

Quelle:
Scripts.cs

Führt eine gespeicherte Prozedur für einen Container als asynchronen Vorgang im Azure Cosmos-Dienst aus und ruft einen Stream als Antwort ab.

public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage> ExecuteStoredProcedureStreamAsync (string storedProcedureId, Microsoft.Azure.Cosmos.PartitionKey partitionKey, object[] parameters, Microsoft.Azure.Cosmos.Scripts.StoredProcedureRequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteStoredProcedureStreamAsync : string * Microsoft.Azure.Cosmos.PartitionKey * obj[] * Microsoft.Azure.Cosmos.Scripts.StoredProcedureRequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage>
Public MustOverride Function ExecuteStoredProcedureStreamAsync (storedProcedureId As String, partitionKey As PartitionKey, parameters As Object(), Optional requestOptions As StoredProcedureRequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResponseMessage)

Parameter

storedProcedureId
String

Der Bezeichner der auszuführenden gespeicherten Prozedur.

partitionKey
PartitionKey

Der Partitionsschlüssel für das Element.

parameters
Object[]

Ein Array dynamischer Objekte, die die Parameter für die gespeicherte Prozedur darstellen. Dies kann NULL sein, wenn keine Parameter erforderlich sind.

requestOptions
StoredProcedureRequestOptions

(Optional) Die Optionen für die Anforderung einer gespeicherten Prozedur.

cancellationToken
CancellationToken

(Optional) CancellationToken stellt den Anforderungsabbruch dar.

Gibt zurück

Das Taskobjekt, das die Dienstantwort für den asynchronen Vorgang darstellt, der einen beliebigen Antwortsatz in der gespeicherten Prozedur enthalten würde.

Ausnahmen

Wenn storedProcedureId oder partitionKey nicht festgelegt sind.

Beispiele

Dadurch wird eine gespeicherte Prozedur erstellt und ausgeführt, die eine Zeichenfolge an das erste Element anhängt, das von der Abfrage zurückgegeben wird.

string sprocBody = @"function simple(prefix, postfix)
   {
       var collection = getContext().getCollection();

       // Query documents and take 1st item.
       var isAccepted = collection.queryDocuments(
       collection.getSelfLink(),
       'SELECT * FROM root r',
       function(err, feed, options) {
           if (err)throw err;

           // Check the feed and if it's empty, set the body to 'no docs found',
           // Otherwise just take 1st element from the feed.
           if (!feed || !feed.length) getContext().getResponse().setBody(""no docs found"");
           else getContext().getResponse().setBody(prefix + JSON.stringify(feed[0]) + postfix);
       });

       if (!isAccepted) throw new Error(""The query wasn't accepted by the server. Try again/use continuation token between API and script."");
   }";

Scripts scripts = this.container.Scripts;
string sprocId = "appendString";
StoredProcedureResponse storedProcedureResponse = await scripts.CreateStoredProcedureAsync(
        sprocId,
        sprocBody);

// Execute the stored procedure
ResponseMessage sprocResponse = await scripts.ExecuteStoredProcedureStreamAsync(
                        sprocId,
                        new PartitionKey(testPartitionId),
                        new dynamic[] {"myPrefixString", "myPostfixString"});

using (StreamReader sr = new StreamReader(sprocResponse.Content))
{
    string stringResponse = await sr.ReadToEndAsync();
    Console.WriteLine(stringResponse);
 }

/// 

Gilt für:

ExecuteStoredProcedureStreamAsync(String, Stream, PartitionKey, StoredProcedureRequestOptions, CancellationToken)

Quelle:
Scripts.cs

Führt eine gespeicherte Prozedur für einen Container als asynchronen Vorgang im Azure Cosmos-Dienst aus und ruft einen Stream als Antwort ab.

public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage> ExecuteStoredProcedureStreamAsync (string storedProcedureId, System.IO.Stream streamPayload, Microsoft.Azure.Cosmos.PartitionKey partitionKey, Microsoft.Azure.Cosmos.Scripts.StoredProcedureRequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member ExecuteStoredProcedureStreamAsync : string * System.IO.Stream * Microsoft.Azure.Cosmos.PartitionKey * Microsoft.Azure.Cosmos.Scripts.StoredProcedureRequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ResponseMessage>
Public MustOverride Function ExecuteStoredProcedureStreamAsync (storedProcedureId As String, streamPayload As Stream, partitionKey As PartitionKey, Optional requestOptions As StoredProcedureRequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ResponseMessage)

Parameter

storedProcedureId
String

Der Bezeichner der auszuführenden gespeicherten Prozedur.

streamPayload
Stream

Ein Stream mit der Nutzlast, die ein JSON-Array oder ein arrayähnliches Objekt von Parametern darstellen soll. Dies wird mithilfe von JSON.parse analysiert, und Function.apply verwendet das Ergebnis, um die gespeicherte Prozedur aufzurufen. Dies kann NULL sein, wenn keine Parameter erforderlich sind.

partitionKey
PartitionKey

Der Partitionsschlüssel für das Element.

requestOptions
StoredProcedureRequestOptions

(Optional) Die Optionen für die Anforderung einer gespeicherten Prozedur.

cancellationToken
CancellationToken

(Optional) CancellationToken stellt den Anforderungsabbruch dar.

Gibt zurück

Das Taskobjekt, das die Dienstantwort für den asynchronen Vorgang darstellt, der einen beliebigen Antwortsatz in der gespeicherten Prozedur enthalten würde. Die Antwort enthält status Code (400) BadRequest, wenn streamPayload etwas anderes als ein JSON-Array, -Objekt oder NULL-Objekt darstellt.

Ausnahmen

Wenn storedProcedureId oder partitionKey nicht festgelegt sind.

Beispiele

Dadurch wird eine gespeicherte Prozedur erstellt und ausgeführt, die eine Zeichenfolge an das erste Element anhängt, das von der Abfrage zurückgegeben wird.

string sprocBody = @"function simple(prefix, postfix)
   {
       var collection = getContext().getCollection();

       // Query documents and take 1st item.
       var isAccepted = collection.queryDocuments(
       collection.getSelfLink(),
       'SELECT * FROM root r',
       function(err, feed, options) {
           if (err)throw err;

           // Check the feed and if it's empty, set the body to 'no docs found',
           // Otherwise just take 1st element from the feed.
           if (!feed || !feed.length) getContext().getResponse().setBody(""no docs found"");
           else getContext().getResponse().setBody(prefix + JSON.stringify(feed[0]) + postfix);
       });

       if (!isAccepted) throw new Error(""The query wasn't accepted by the server. Try again/use continuation token between API and script."");
   }";

Scripts scripts = this.container.Scripts;
string sprocId = "appendString";
StoredProcedureResponse storedProcedureResponse = await scripts.CreateStoredProcedureAsync(
        sprocId,
        sprocBody);

// Serialize the parameters into a stream
string[] parameters = new string[] { "myPrefixString", "myPostfixString" };
byte[] serializedBytes = JsonSerializer.SerializeToUtf8Bytes(parameters);
MemoryStream streamPayload = new MemoryStream(serializedBytes);

// Execute the stored procedure
ResponseMessage sprocResponse = await scripts.ExecuteStoredProcedureStreamAsync(
                        sprocId,
                        streamPayload,
                        new PartitionKey(testPartitionId));

using (StreamReader sr = new StreamReader(sprocResponse.Content))
{
    string stringResponse = await sr.ReadToEndAsync();
    Console.WriteLine(stringResponse);
 }

/// 

Gilt für: