Scripts.ExecuteStoredProcedureStreamAsync メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
ExecuteStoredProcedureStreamAsync(String, PartitionKey, Object[], StoredProcedureRequestOptions, CancellationToken) |
Azure Cosmos サービスの非同期操作としてコンテナーに対してストアド プロシージャを実行し、Stream を応答として取得します。 |
ExecuteStoredProcedureStreamAsync(String, Stream, PartitionKey, StoredProcedureRequestOptions, CancellationToken) |
Azure Cosmos サービスの非同期操作としてコンテナーに対してストアド プロシージャを実行し、Stream を応答として取得します。 |
ExecuteStoredProcedureStreamAsync(String, PartitionKey, Object[], StoredProcedureRequestOptions, CancellationToken)
- ソース:
- Scripts.cs
Azure Cosmos サービスの非同期操作としてコンテナーに対してストアド プロシージャを実行し、Stream を応答として取得します。
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)
パラメーター
- storedProcedureId
- String
実行するストアド プロシージャの識別子。
- partitionKey
- PartitionKey
項目のパーティション キー。
- parameters
- Object[]
ストアド プロシージャのパラメーターを表す動的オブジェクトの配列。 パラメーターが必要ない場合は、null を指定できます。
- requestOptions
- StoredProcedureRequestOptions
(省略可能)ストアド プロシージャ要求のオプション。
- cancellationToken
- CancellationToken
(省略可能) CancellationToken 要求の取り消しを表します。
戻り値
ストアド プロシージャに設定された応答を含む非同期操作のサービス応答を表すタスク オブジェクト。
例外
または partitionKey
が設定されていない場合storedProcedureId
。
例
これにより、クエリから返される最初の項目に文字列を追加するストアド プロシージャが作成され、実行されます。
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);
}
///
適用対象
ExecuteStoredProcedureStreamAsync(String, Stream, PartitionKey, StoredProcedureRequestOptions, CancellationToken)
- ソース:
- Scripts.cs
Azure Cosmos サービスの非同期操作としてコンテナーに対してストアド プロシージャを実行し、Stream を応答として取得します。
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)
パラメーター
- storedProcedureId
- String
実行するストアド プロシージャの識別子。
- streamPayload
- Stream
Stream JSON 配列またはパラメーターの配列のようなオブジェクトを表すペイロードを格納している 。 これは JSON.parse を使用して解析され、Function.apply は結果を使用してストアド プロシージャを呼び出します。 パラメーターが必要ない場合は、null を指定できます。
- partitionKey
- PartitionKey
項目のパーティション キー。
- requestOptions
- StoredProcedureRequestOptions
(省略可能)ストアド プロシージャ要求のオプション。
- cancellationToken
- CancellationToken
(省略可能) CancellationToken 要求の取り消しを表します。
戻り値
ストアド プロシージャに設定された応答を含む非同期操作のサービス応答を表すタスク オブジェクト。 streamPayload が JSON 配列、オブジェクト、または null 以外のものを表す場合、応答には状態コード (400) BadRequest が含まれます。
例外
または partitionKey
が設定されていない場合storedProcedureId
。
例
これにより、クエリから返される最初の項目に文字列を追加するストアド プロシージャが作成され、実行されます。
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);
}
///
適用対象
Azure SDK for .NET