Partager via


Classe SafeToPrepareAttribute

Marque les méthodes dans l'assembly qui sont sécurisées pour s'exécuter avec la propriété ExecuteForPrepare définie avec la valeur True.

Hiérarchie d'héritage

Object
  Attribute
    Microsoft.AnalysisServices.AdomdServer.SafeToPrepareAttribute

Espace de noms :  Microsoft.AnalysisServices.AdomdServer
Assembly :  msmgdsrv (en msmgdsrv.dll)

Syntaxe

'Déclaration
Public NotInheritable Class SafeToPrepareAttribute _
    Inherits Attribute
'Utilisation
Dim instance As SafeToPrepareAttribute
public sealed class SafeToPrepareAttribute : Attribute
public ref class SafeToPrepareAttribute sealed : public Attribute
[<SealedAttribute>]
type SafeToPrepareAttribute =  
    class 
        inherit Attribute 
    end
public final class SafeToPrepareAttribute extends Attribute

Le type SafeToPrepareAttribute expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique SafeToPrepareAttribute Initialise une nouvelle instance de la classe SafeToPrepareAttribute.

Haut

Propriétés

  Nom Description
Propriété publique IsSafeToPrepare Obtient une valeur qui indique si la méthode associée est sécurisée pour s'exécuter avec la propriété ExecuteForPrepare définie avec la valeur true.
Propriété publique TypeId (hérité de Attribute.)

Haut

Méthodes

  Nom Description
Méthode publique {dtor} Libère toutes les ressources utilisées par SafeToPrepareAttribute.
Méthode publique Equals (hérité de Attribute.)
Méthode publique GetHashCode (hérité de Attribute.)
Méthode publique GetType (hérité de Object.)
Méthode publique IsDefaultAttribute (hérité de Attribute.)
Méthode publique Match (hérité de Attribute.)
Méthode publique ToString (hérité de Object.)

Haut

Implémentations d'interfaces explicites

  Nom Description
Implémentation d'interface expliciteMéthode privée System#Runtime#InteropServices#_Attribute#GetIDsOfNames (hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée System#Runtime#InteropServices#_Attribute#GetTypeInfo (hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée System#Runtime#InteropServices#_Attribute#GetTypeInfoCount (hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée System#Runtime#InteropServices#_Attribute#Invoke (hérité de Attribute.)

Haut

Notes

Si une fonction définie par l'utilisateur (UDF) retourne un DataTable, elle doit pouvoir préparer l'exécution avec la propriété ExecuteForPrepare définie sur true. Pour préparer l'exécution, l'UDF doit déterminer la structure du DataTable nécessaire pour être retournée, puis retourner un DataTable vide structuré correctement.

Exemples

Dans l'exemple suivant, une UDF simple crée un DataTable. Si l'UDF s'exécute avec la propriété ExecuteForPrepare définie sur true, elle retourne une version vide du DataTable. Si l'UDF s'exécute avec la propriété ExecuteForPrepare définie sur false, l'UDF poursuit, remplit le DataTable et retourne le DataTable rempli.

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

Sécurité des threads

Tous les membres publics static (Shared dans Visual Basic) de ce type sont thread-safe. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.

Voir aussi

Référence

Espace de noms Microsoft.AnalysisServices.AdomdServer