Scripts.ExecuteStoredProcedureStreamAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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:
Azure SDK for .NET