Context.ExecuteForPrepare Propiedad
Obtiene un valor que indica si se llama al procedimiento almacenado con fines de preparación.
Espacio de nombres: Microsoft.AnalysisServices.AdomdServer
Ensamblado: msmgdsrv (en msmgdsrv.dll)
Sintaxis
'Declaración
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 de la propiedad
Tipo: Boolean
true si se llama al procedimiento almacenado con fines de preparación; en caso contrario, false.
Comentarios
A los procedimientos almacenados y a las funciones definidas por el usuario (UDF) se les llama en "modo de preparación" para determinar los metadatos necesarios para crear el conjunto de celdas o de filas combinado final. Cuando se ejecuta en "modo de preparación”, el procedimiento almacenado o la UDF no debe devolver ningún dato, sino que debe volver inmediatamente después de crear el tipo de datos que se devolvería normalmente.
Solo se puede llamar a procedimientos almacenados y UDF en "modo de preparación" si se les han aplicado atributos mediante SafeToPrepareAttribute. Si se llama a un procedimiento almacenado en "modo de preparación" pero no se le han aplicado atributos, se producirá una excepción.
Las UDF que devuelven DataTables se preparan automáticamente antes de ejecutarse la consulta.
Ejemplos
En el ejemplo siguiente, el procedimiento almacenado vuelve inmediatamente después de crear la tabla de datos cuando se le llama en "modo de preparación":
[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;
}