Compartilhar via


Interface IMDEmbedded

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

  • Obter um identificador do fluxo inserido no documento contêiner.

  • Definir a URL do documento contêiner.

  • Definir um sinalizador para indicar se o aplicativo inserido está em um ambiente hospedado.

  • Definir o caminho para os arquivos temporários usados pelo aplicativo inserido.

  • Cancelar a operação inserida atual.

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

  • Verificar se o banco de dados inserido foi alterado após ser salvo pela última vez. Herdado de IPersistStream.

  • Carregar o banco de dados inserido para o mecanismo local ou em processo. Herdado de IPersistStream.

  • Salvar o banco de dados local ou em processo para o fluxo inserido no documento 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 de host para o fluxo inserido no documento contêiner.

Parâmetros

out_pbstrStreamId
Especifica o local do identificador de fluxo.

Valor Retornado

S_OK
O identificador de fluxo foi retornado com êxito.

S_FALSE
Não há nenhum identificador de fluxo.

E_FAIL
Erro ao acessar o identificador de fluxo.

Comentários

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 nas 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 está hospedado em um aplicativo remoto (p. ex., 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 para o arquivo que contém o fluxo inserido.

Parâmetros

in_bstrURL
Especifica a URL para o documento contêiner.

Valor Retornado

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

Definir um sinalizador para indicar se o aplicativo inserido 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 Retornado

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

Definir o caminho para os arquivos temporários usados pelo aplicativo inserido.

Parâmetros

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

Valor Retornado

S_OK
O diretório de arquivos temporários 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 Retornado

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

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

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 de banco de dados inserida.

Valor Retornado

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 após ser salvo pela última vez. Herdado de IPersistStream.

Parâmetros

nenhum

Valor(es) de retorno

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

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 para o mecanismo local ou em processo. Herdado de IPersistStream.

Parâmetros

in_pStm
Um ponteiro para uma interface de fluxo da qual deverá ser carregado o banco de dados inserido.

Valor(es) de retorno

S_OK
O banco de dados foi carregado com êxito.

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

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

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 para o fluxo inserido no documento contêiner. Herdado de IPersistStream.

Parâmetros

in_pStm
Um ponteiro para uma interface de fluxo na qual deverá ser salvo o banco de dados inserido.

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

Valor(es) de retorno

S_OK
O banco de dados foi salvo com êxito.

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

STG_E_MEDIUMFULL
Não foi possível salvar o banco de dados porque não há espaço remanescente no dispositivo de armazenamento.