次の方法で共有


Context.ExecuteForPrepare Property

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

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

構文

'宣言
Public Shared ReadOnly Property ExecuteForPrepare As Boolean
public static bool ExecuteForPrepare { get; }
public:
static property bool ExecuteForPrepare {
    bool get ();
}
/** @property */
public static boolean get_ExecuteForPrepare ()
public static function get ExecuteForPrepare () : 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;
}

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

Context Class
Context Members
Microsoft.AnalysisServices.AdomdServer Namespace