次の方法で共有


ExecuteForPrepare プロパティ

ストアド プロシージャが準備目的で呼び出されたかどうかを示す値を取得します。

名前空間:  Microsoft.AnalysisServices.AdomdServer
アセンブリ:  msmgdsrv (msmgdsrv.dll)

構文

'宣言
Public Shared ReadOnly Property ExecuteForPrepare As Boolean
    Get
'使用
Dim value As Boolean

value = Context.ExecuteForPrepare
public static bool ExecuteForPrepare { get; }
public:
static property bool ExecuteForPrepare {
    bool get ();
}
static member ExecuteForPrepare : bool
static function get ExecuteForPrepare () : boolean

プロパティ値

型: System. . :: . .Boolean
ストアド プロシージャが準備目的で呼び出された場合は true、それ以外の場合は false です。

説明

ストアド プロシージャやユーザー定義関数 (UDF) を "準備モード" で呼び出すのは、最終的に結合されたセル セットまたは行セットを作成するために必要なメタデータを調べるためです。"準備モード" で実行されたストアド プロシージャまたは UDF は、データを返しません。実際にデータを返すのではなく、実行した場合に返されるデータ型を構築した後、直ちに制御を返します。

SafeToPrepareAttribute の属性が設定されたストアド プロシージャおよび UDF は、"準備モード" でのみ呼び出すことができます。この属性の設定されていないストアド プロシージャを "準備モード" で呼び出した場合、例外が発生します。

DataTables を返す UDF は、クエリの実行前に自動的に準備されます。

使用例

ストアド プロシージャを "準備モード" で実行する例を次に示します。ストアド プロシージャは、データ テーブルを作成した後、直ちに制御を返します。

[SafeToPrepare(true)]
public System.Data.DataTable GetPreparedTable()
{
    System.Data.DataTable results = new System.Data.DataTable();
    results.Columns.Add("A", typeof(int));
    results.Columns.Add("B", typeof(string));

    if (Context.ExecuteForPrepare)
    {
        // If preparing, return just the schema with no data
        return results;
    }

    //Otherwise return data
    object[] row = new object[2];
    row[0] = 1;
    row[1] = "A";
    results.Rows.Add(row);

    row[0] = 2;
    row[1] = "B";
    results.Rows.Add(row);

    return results;
}