Compartilhar via


Classe SafeToPrepareAttribute

Marca os métodos no assembly que estão seguros para execução com a propriedade de ExecuteForPrepare definida como true.

Hierarquia de herança

Object
  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 Inicializa uma nova instância da classe SafeToPrepareAttribute.

Início

Propriedades

  Nome Descrição
Propriedade pública IsSafeToPrepare Obtém um valor que indica se o método associado é seguro para execução com a propriedade ExecuteForPrepare definida como true.
Propriedade pública TypeId (Herdado de Attribute.)

Início

Métodos

  Nome Descrição
Método público {dtor} Libera todos os recursos usados por 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 System#Runtime#InteropServices#_Attribute#GetIDsOfNames (Herdado de Attribute.)
Implementações de interfaces explícitasMétodo privado System#Runtime#InteropServices#_Attribute#GetTypeInfo (Herdado de Attribute.)
Implementações de interfaces explícitasMétodo privado System#Runtime#InteropServices#_Attribute#GetTypeInfoCount (Herdado de Attribute.)
Implementações de interfaces explícitasMétodo privado System#Runtime#InteropServices#_Attribute#Invoke (Herdado de Attribute.)

Início

Comentários

Se uma função definida pelo usuário (UDF) retornar DataTable, a UDF deverá ser capaz de preparar a execução com a propriedade ExecuteForPrepare definida como true. Para preparar a execução, a UDF deve determinar a estrutura de DataTable que precisa ser retornada e retornar uma DataTable vazia que esteja devidamente estruturada.

Exemplos

No exemplo a seguir, uma UDF simples cria uma DataTable. Se uma UDF for executada com a propriedade ExecuteForPrepare definida como true, a UDF retornará com uma versão vazia de DataTable. Se uma UDF for executada com a propriedade ExecuteForPrepare definida como false, a UDF continuará populando DataTable e retornará DataTable populada.

[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