Compartilhar via


Propriedade do RDL Context.ExecuteForPrepare

Obtém um valor que indica se o procedimento armazenado está sendo chamado para fins de preparação.

Namespace:  Microsoft.AnalysisServices.AdomdServer
Assembly:  msmgdsrv (em msmgdsrv.dll)

Sintaxe

'Declaração
Public Shared ReadOnly Property ExecuteForPrepare As Boolean 
    Get
'Uso
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

Valor da propriedade

Tipo: Boolean
true se o procedimento armazenado estiver sendo chamado para fins de preparação; caso contrário, false.

Comentários

Os procedimentos armazenados e funções definidas pelo usuário (UDFs) são chamados no "modo de preparação" para determinar os metadados necessários para criar o conjunto de células final, combinado ou o conjunto de linhas. Durante a execução no "modo de preparação", o procedimento armazenado ou UDF não deve retornar dados, mas retorna imediatamente após a criação o tipo de dados que seria retornado normalmente.

Os procedimentos armazenados e UDFs só podem ser chamados no "modo de preparação" se foram atribuídos com SafeToPrepareAttribute. Se um procedimento armazenado for chamado no "modo de preparação", mas o procedimento armazenado não estiver atribuído, uma exceção será gerada.

UDFs que retornam DataTables são preparadas automaticamente antes da execução da consulta.

Exemplos

No exemplo a seguir, o procedimento armazenado retorna imediatamente após a criação da tabela de dados quando no "modo de preparação":

[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;
}

Consulte também

Referência

Context Classe

Namespace Microsoft.AnalysisServices.AdomdServer