Compartir a través de


Scripts.ExecuteStoredProcedureStreamAsync Método

Definición

Sobrecargas

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

Ejecuta un procedimiento almacenado en un contenedor como una operación asincrónica en el servicio Azure Cosmos y obtiene una secuencia como respuesta.

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

Ejecuta un procedimiento almacenado en un contenedor como una operación asincrónica en el servicio Azure Cosmos y obtiene una secuencia como respuesta.

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

Source:
Scripts.cs

Ejecuta un procedimiento almacenado en un contenedor como una operación asincrónica en el servicio Azure Cosmos y obtiene una secuencia como respuesta.

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)

Parámetros

storedProcedureId
String

Identificador del procedimiento almacenado que se va a ejecutar.

partitionKey
PartitionKey

Clave de partición del elemento.

parameters
Object[]

Matriz de objetos dinámicos que representan los parámetros del procedimiento almacenado. Esto puede ser null si no se requiere ningún parámetro.

requestOptions
StoredProcedureRequestOptions

(Opcional) Las opciones de la solicitud de procedimiento almacenado.

cancellationToken
CancellationToken

(Opcional) CancellationToken que representa la cancelación de la solicitud.

Devoluciones

Objeto de tarea que representa la respuesta del servicio para la operación asincrónica que contendrá cualquier conjunto de respuestas en el procedimiento almacenado.

Excepciones

Si storedProcedureId o partitionKey no se establecen.

Ejemplos

Esto crea y ejecuta un procedimiento almacenado que anexa una cadena al primer elemento devuelto de la consulta.

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);
 }

/// 

Se aplica a

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

Source:
Scripts.cs

Ejecuta un procedimiento almacenado en un contenedor como una operación asincrónica en el servicio Azure Cosmos y obtiene una secuencia como respuesta.

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)

Parámetros

storedProcedureId
String

Identificador del procedimiento almacenado que se va a ejecutar.

streamPayload
Stream

que Stream contiene la carga que debe representar una matriz JSON o un objeto de tipo arraylike de parámetros. Esto se analiza mediante JSON.parse y Function.apply usa el resultado para llamar al procedimiento almacenado. Esto puede ser null si no se requiere ningún parámetro.

partitionKey
PartitionKey

Clave de partición del elemento.

requestOptions
StoredProcedureRequestOptions

(Opcional) Las opciones de la solicitud de procedimiento almacenado.

cancellationToken
CancellationToken

(Opcional) CancellationToken que representa la cancelación de la solicitud.

Devoluciones

Objeto de tarea que representa la respuesta del servicio para la operación asincrónica que contendrá cualquier conjunto de respuestas en el procedimiento almacenado. La respuesta contendrá el código de estado (400) BadRequest si streamPayload representa algo distinto de una matriz JSON, objeto o null.

Excepciones

Si storedProcedureId o partitionKey no se establecen.

Ejemplos

Esto crea y ejecuta un procedimiento almacenado que anexa una cadena al primer elemento devuelto de la consulta.

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);
 }

/// 

Se aplica a