Propriété Context.ExecuteForPrepare
Obtient une valeur qui indique si la procédure stockée est appelée à des fins de préparation.
Espace de noms : Microsoft.AnalysisServices.AdomdServer
Assembly : msmgdsrv (en msmgdsrv.dll)
Syntaxe
'Déclaration
Public Shared ReadOnly Property ExecuteForPrepare As Boolean
Get
'Utilisation
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
Valeur de propriété
Type : Boolean
true si la procédure stockée est appelée à des fins de préparation ; sinon, false.
Notes
Les procédures stockées et les fonctions définies par l'utilisateur (UDF) sont appelées en « mode de préparation » afin de déterminer les métadonnées nécessaires pour créer l'ensemble de cellules ou l'ensemble de lignes combiné final. Lorsqu'elle est exécute en « mode de préparation », la procédure stockée ou l'UDF ne doit pas renvoyer des données, mais est retournée immédiatement après la construction du type de données qui serait normalement retourné.
Les procédures stockées et les UDF peuvent être appelées en « mode de préparation » uniquement si elles ont été attribuées avec SafeToPrepareAttribute. Si une procédure stockée est appelée en « mode de préparation » mais elle n'a pas été attribuée, une exception sera levée.
Les fonctions définies par l'utilisateur qui retournent des DataTables sont automatiquement préparées avant l'exécution de la requête.
Exemples
Dans l'exemple suivant, la procédure stockée est retournée immédiatement après la création de la table de données en « mode de préparation » :
[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;
}