Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft einen Wert ab, der angibt, ob die gespeicherte Prozedur zu Vorbereitungszwecken aufgerufen wird.
Namespace: Microsoft.AnalysisServices.AdomdServer
Assembly: msmgdsrv (in msmgdsrv.dll)
Syntax
'Declaration
Public Shared ReadOnly Property ExecuteForPrepare As Boolean
Get
'Usage
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
Eigenschaftswert
Typ: Boolean
true, wenn die gespeicherte Prozedur zu Vorbereitungszwecken aufgerufen wird, andernfalls false.
Hinweise
Gespeicherte Prozeduren und benutzerdefinierte Funktionen werden im "Vorbereitungsmodus" aufgerufen, um die zum Erstellen des endgültigen kombinierten Cellsets oder Rowsets erforderlichen Metadaten zu bestimmen. Bei der Ausführung im "Vorbereitungsmodus" sollte die gespeicherte Prozedur oder benutzerdefinierte Funktion keine Daten zurückgeben, sondern direkt nach dem Erstellen des Datentyps, der normalerweise zurückgegeben würde, beendet werden.
Gespeicherte Prozeduren und benutzerdefinierte Funktionen können nur dann im "Vorbereitungsmodus" aufgerufen werden, wenn ihnen SafeToPrepareAttribute zugewiesen wurde. Wenn eine gespeicherte Prozedur im "Vorbereitungsmodus" aufgerufen wird, jedoch kein Attribut zugewiesen wurde, wird eine Ausnahme ausgelöst.
Benutzerdefinierte Funktionen, die DataTables zurückgeben, werden automatisch vorbereitet, bevor die Abfrage ausgeführt wird.
Beispiele
Im folgenden Beispiel wird die gespeicherte Prozedur im "Vorbereitungsmodus" sofort nach dem Erstellen der Datentabelle beendet:
[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;
}