Compartilhar via


IMDEmbedded Interface

A interface IMDEmbedded é uma interface pública usada para gerenciar um banco de dados PowerPivot inserido ou um banco de dados de modelo tabular. A interface herda da IPersistStream interface. A interface permite as seguintes operações:

  • Obtenha um identificador para o fluxo inserido no documento de contêiner.

  • Defina a URL do documento que contém.

  • Defina um sinalizador para indicar se o aplicativo de inserção está em um ambiente hospedado.

  • Defina o caminho para arquivos temporários usados pelo aplicativo de inserção.

  • Cancele a operação inserida atual.

  • Obtenha o tamanho estimado (em bytes) do fluxo para salvar o objeto inserido. Herdado de IPersistStream.

  • Verifique se o banco de dados inserido foi alterado desde que foi salvo pela última vez. Herdado de IPersistStream.

  • Carregue o banco de dados inserido no mecanismo local ou em processo. Herdado de IPersistStream.

  • Salve o banco de dados local ou em processo no fluxo inserido no documento de contêiner. Herdado de IPersistStream.

Referência

A referência a seguir documenta a IMDEmbedded interface, conforme apresentado no arquivo de cabeçalho msmd.h .

Arquivo de origem: PXOEmbeddedData.idl

[  
  local,                            
  object,                           
  uuid(6B6691CF-5453-41c2-ADD9-4F320B7FD421),                       
  pointer_default(unique)           
]  
interface IMDEmbeddedData : IPersistStream  
{  
 [id(1), helpstring("Set flag indicating if the application is in a hosted environment")]   
 HRESULT SetHosted(  
  [in] BOOL in_fIsHosted);  
  
 [id(2), helpstring("Set the URL for the document containing the embedded stream")]   
 HRESULT SetContainerURL(  
  [in] BSTR in_bstrURL);  
  
 [id(3), helpstring("Get identifier used to look up embedded stream in container document")]   
 HRESULT GetStreamIdentifier(  
  [out, retval] BSTR* out_pbstrStreamId);  
  
 [id(4), helpstring("Set the path used by the embedding application for temporary files")]   
 HRESULT SetTempDirPath(  
  [in]  BSTR in_bstrPath);  
  
 [id(5), helpstring("Cancel the current operation")]   
 HRESULT Cancel();  
};  

IMDEmbeddedData::GetStreamIdentifier

HRESULT GetStreamIdentifier (  
    [out, retval] BSTR * out_pbstrStreamId  
    )  

Descrição

Obtém o identificador usado pelo aplicativo host para o fluxo inserido no documento de contêiner.

Parâmetros

out_pbstrStreamId
Especifica o local do identificador de fluxo.

Valor de retorno

S_OK
O identificador do fluxo foi retornado com êxito.

S_FALSE
Não há nenhum identificador de fluxo.

E_FAIL
Ocorreu um erro ao acessar o identificador de fluxo.

Observações

Para verificar se a conexão atual contém um banco de dados inserido, o usuário deve verificar o valor da propriedade DBPROP_MSMD_EMBEDDED_DATA das propriedades de conexão OLE DB.

Os valores possíveis para DBPROP_MSMD_EMBEDDED_DATA são:

Nome Valor Definição
DBPROPVAL_EMBED_NONE 0x00 Nenhum banco de dados inserido disponível
DBPROPVAL_EMBED_EMBEDDED 0x01 O aplicativo atual contém o banco de dados inserido
DBPROPVAL_EMBED_LINKED 0x02 O banco de dados inserido é hospedado em um aplicativo remoto (ou seja, SharePoint Server)

Fonte

[id(1), helpstring("Get identifier used to look up embedded stream in container document")]   
 HRESULT GetStreamIdentifier(  
  [out, retval] BSTR* out_pbstrStreamId);  

IMDEmbeddedData::SetContainerURL

HRESULT SetContainerURL (  
    [in] BSTR in_bstrURL  
    )  

Descrição

Define a URL do arquivo que contém o fluxo inserido.

Parâmetros

in_bstrURL
Especifica a URL do documento que contém.

Valor de retorno

S_OK
A URL do contêiner foi definida com êxito.

E_FAIL
Erro ao definir a URL do contêiner.

Fonte

[id(2), helpstring("Set the URL for the document containing the embedded stream")]   
 HRESULT SetContainerURL(  
  [in] BSTR in_bstrURL);  

IMDEmbeddedData::SetHosted

HRESULT SetHosted (  
    [in] BOOL in_fIsHosted  
    )  

Descrição

Defina um sinalizador para indicar se o aplicativo de inserção está em um ambiente hospedado.

Parâmetros

in_ftHosted
TRUE se o chamador estiver hospedado em um aplicativo de serviço (como o IIS).

Valor de retorno

S_OK
O sinalizador foi definido com êxito.

E_FAIL
Erro ao definir o sinalizador.

Fonte

[id(5), helpstring("Set flag indicating if the application is in a hosted environment")]   
 HRESULT SetHosted(  
  [in]  BOOL in_fIsHosted);  

IMDEmbeddedData::SetTempDirPath

HRESULT SetTempDirPath (  
    [in] BSTR in_bstrPath  
    )  

Descrição

Defina o caminho para arquivos temporários usados pelo aplicativo de inserção.

Parâmetros

in_bstrPath
O caminho usado pelo aplicativo host para arquivos temporários.

Valor de retorno

S_OK
O diretório de arquivo temporário foi definido com êxito.

E_FAIL
Erro ao definir o caminho.

Fonte

[id(4), helpstring("Set the path used by the host application for temporary files")]   
 HRESULT SetTempDirPath(  
  [in]  BSTR in_bstrPath);  

IMDEmbeddedData::Cancel

HRESULT Cancel ( void )  

Descrição

Cancela a operação de banco de dados inserida atual

Parâmetros

Nenhum.

Valor de retorno

S_OK
A operação foi cancelada com êxito.

DB_E_CANTCANCEL
Nenhuma operação cancelável está em andamento no momento.

E_FAIL
Erro ao cancelar a operação inserida.

Fonte

[id(5), helpstring("Cancel the current operation")]   
 HRESULT Cancel();  

IMDEmbeddedData::GetSizeMax (IPersistStream::GetSizeMax)

HRESULT GetSizeMax (  
    [out] ULARGE_INTEGER * out_pcbSize  
    )  

Descrição

Obtém o tamanho estimado (em bytes) do fluxo para salvar o objeto inserido. Herdado de IPersistStream.

Parâmetros

in_bstrPath
O tamanho estimado (em bytes) da imagem do banco de dados inserido.

Valor de retorno

S_OK
O tamanho foi obtido com êxito.

E_FAIL
Erro ao obter o tamanho.

IMDEmbeddedData::IsDirty (IPersistStream::IsDirty)

HRESULT IsDirty ( void )  

Descrição

Verifica se o banco de dados inserido foi alterado desde que foi salvo pela última vez. Herdado de IPersistStream.

Parâmetros

nenhum

Valores retornados

S_OK
O banco de dados foi alterado desde a última vez que foi salvo.

S_FALSE
O banco de dados não foi alterado desde que foi salvo pela última vez.

E_FAIL
Erro ao obter o estado do banco de dados.

IMDEmbeddedData::Load (IPersistStream::Load)

HRESULT Load (   
    [in] IStream * in_pStm   
    )  

Descrição

Carrega o banco de dados inserido no mecanismo local ou em processo. Herdado de IPersistStream.

Parâmetros

in_pStm
Um ponteiro para uma interface de fluxo de onde carregar o banco de dados inserido.

Valores retornados

S_OK
O banco de dados foi carregado com êxito.

E_OUTOFMEMORY
Memória insuficiente para carregar o banco de dados.

E_FAIL
Erro ao carregar o banco de dados, diferente de E_OUTOFMEMORY.

IMDEmbeddedData::Save (IPersistStream::Save)

HRESULT Save (   
    [in] IStream * in_pStm,  
    [in] BOOL in_fClearDirty  
    )  

Descrição

Salva o banco de dados local ou em processo no fluxo inserido no documento de contêiner. Herdado de IPersistStream.

Parâmetros

in_pStm
Um ponteiro para uma interface de fluxo para onde salvar o banco de dados inserido.

in_fClearDirty
Um sinalizador que indica se o sinalizador sujo deve ser limpo após esta operação.

Valores retornados

S_OK
O banco de dados foi salvo com êxito.

STG_E_CANTSAVE
Erro ao salvar o banco de dados, diferente de STG_E_MEDIUMFULL.

STG_E_MEDIUMFULL
O banco de dados não pôde ser salvo porque não há espaço no dispositivo de armazenamento.