Context.ExecuteForPrepare Propiedad
Gets a value that indicates whether the stored procedure is being called for preparation purposes.
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: System.Boolean
true if the stored procedure is being called for preparation purposes; otherwise, false.
Comentarios
Stored procedures and user-defined functions (UDFs) are called in "prepare mode" to determine the metadata necessary for creating the final, combined cellset or rowset. When running in "prepare mode," the stored procedure or UDF should not return data, but rather return immediately after constructing the data type that would normally be returned.
Stored procedures and UDFs can only be called in "prepare mode" if they have been attributed with the SafeToPrepareAttribute. If a stored procedure is called in "prepare mode" but the stored procedure has not been attributed, an exception will be raised.
UDFs that return DataTables are automatically prepared before the query is run.
Ejemplos
In the following example, the stored procedure returns immediately after creating the data table when in "prepare mode":
[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;
}