Scripts.ExecuteStoredProcedureStreamAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
Azure SDK for .NET