Compartilhar via


Classe SafeToPrepareAttribute

Marks the methods in the assembly that are safe to run with the ExecuteForPrepare property set to true.

Hierarquia de herança

System.Object
  System.Attribute
    Microsoft.AnalysisServices.AdomdServer.SafeToPrepareAttribute

Namespace:  Microsoft.AnalysisServices.AdomdServer
Assembly:  msmgdsrv (em msmgdsrv.dll)

Sintaxe

'Declaração
Public NotInheritable Class SafeToPrepareAttribute _
    Inherits Attribute
'Uso
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

O tipo SafeToPrepareAttribute expõe os membros a seguir.

Construtores

  Nome Descrição
Método público SafeToPrepareAttribute Initializes a new instance of the SafeToPrepareAttribute class.

Início

Propriedades

  Nome Descrição
Propriedade pública IsSafeToPrepare Gets a value that indicates whether the associated method is safe to run with the ExecuteForPrepare property set to true.
Propriedade pública TypeId (Herdado de Attribute.)

Início

Métodos

  Nome Descrição
Método público {dtor} Releases all resources used by the SafeToPrepareAttribute.
Método público Equals (Herdado de Attribute.)
Método público GetHashCode (Herdado de Attribute.)
Método público GetType (Herdado de Object.)
Método público IsDefaultAttribute (Herdado de Attribute.)
Método público Match (Herdado de Attribute.)
Método público ToString (Herdado de Object.)

Início

Implementações de interfaces explícitas

  Nome Descrição
Implementações de interfaces explícitasMétodo privado _Attribute.GetIDsOfNames (Herdado de Attribute.)
Implementações de interfaces explícitasMétodo privado _Attribute.GetTypeInfo (Herdado de Attribute.)
Implementações de interfaces explícitasMétodo privado _Attribute.GetTypeInfoCount (Herdado de Attribute.)
Implementações de interfaces explícitasMétodo privado _Attribute.Invoke (Herdado de Attribute.)

Início

Comentários

If a user defined function (UDF) returns a DataTable, the UDF should be able to prepare for execution by running with the ExecuteForPrepare property set to true. To prepare for execution, the UDF should determine the structure of the DataTable needed to be returned, and return an empty DataTable that is structured appropriately.

Exemplos

In the following example, a simple UDF creates a DataTable. If the UDF runs with the ExecuteForPrepare property set to true, the UDF returns with an empty version of the DataTable. If the UDF runs with the ExecuteForPrepare property set to false, the UDF continues, populates the DataTable, and returns the populated DataTable.

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

Segurança de thread

Qualquer membro público static (Shared no Visual Basic) desse tipo é seguro para threads. Não há garantia de que qualquer membro de instância seja seguro para threads.

Consulte também

Referência

Namespace Microsoft.AnalysisServices.AdomdServer