Interfaz IMDEmbedded

La interfaz IMDEmbedded es una interfaz pública que se usa para administrar una base de datos PowerPivot incrustada o una base de datos de modelo tabular. La interfaz hereda de la IPersistStream interfaz . La interfaz permite las siguientes operaciones:

  • Obtenga un identificador para el flujo incrustado en el documento de contenedor.

  • Establezca la dirección URL del documento contenedor.

  • Establezca una marca para indicar si la aplicación de inserción está en un entorno hospedado.

  • Establezca la ruta de acceso a los archivos temporales usados por la aplicación de inserción.

  • Cancele la operación insertada actual.

  • Obtenga el tamaño estimado (en bytes) de la secuencia para guardar el objeto incrustado. Se hereda de IPersistStream.

  • Compruebe si la base de datos incrustada ha cambiado desde que se guardó por última vez. Se hereda de IPersistStream.

  • Cargue la base de datos insertada en el motor local o en proceso. Se hereda de IPersistStream.

  • Guarde la base de datos local o en proceso en la secuencia insertada en el documento de contenedor. Se hereda de IPersistStream.

Referencia

La siguiente referencia documenta la IMDEmbedded interfaz tal como se muestra en el archivo de encabezado msmd.h .

Archivo de origen: 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  
    )  

Descripción

Obtiene el identificador utilizado por la aplicación host para el flujo incrustado en el documento de contenedor.

Parámetros

out_pbstrStreamId
Especifica la ubicación del identificador de flujo.

Valor devuelto

S_OK
El identificador de flujo se devolvió correctamente.

S_FALSE
No hay ningún identificador de flujo.

E_FAIL
Error al acceder al identificador de flujo.

Observaciones

Para comprobar si la conexión actual contiene una base de datos incrustada, el usuario debe comprobar el valor de la propiedad DBPROP_MSMD_EMBEDDED_DATA de las propiedades de conexión OLE DB.

Los valores posibles para DBPROP_MSMD_EMBEDDED_DATA son:

Nombre Importancia Definición
DBPROPVAL_EMBED_NONE 0x00 No hay ninguna base de datos incrustada disponible
DBPROPVAL_EMBED_EMBEDDED 0x01 La aplicación actual contiene la base de datos incrustada.
DBPROPVAL_EMBED_LINKED 0x02 La base de datos incrustada se hospeda en una aplicación remota (es decir, SharePoint Server)

Fuente

[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  
    )  

Descripción

Establece la dirección URL del archivo que contiene la secuencia incrustada.

Parámetros

in_bstrURL
Especifica la dirección URL del documento contenedor.

Valor devuelto

S_OK
La dirección URL del contenedor se estableció correctamente.

E_FAIL
Error al establecer la dirección URL del contenedor.

Fuente

[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  
    )  

Descripción

Establezca una marca para indicar si la aplicación de inserción está en un entorno hospedado.

Parámetros

in_ftHosted
TRUE si el autor de la llamada está hospedado en una aplicación de servicio (como IIS).

Valor devuelto

S_OK
La marca se estableció correctamente.

E_FAIL
Error al establecer la marca.

Fuente

[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  
    )  

Descripción

Establezca la ruta de acceso a los archivos temporales usados por la aplicación de inserción.

Parámetros

in_bstrPath
Ruta de acceso usada por la aplicación host para archivos temporales.

Valor devuelto

S_OK
El directorio de archivos temporal se estableció correctamente.

E_FAIL
Error al establecer la ruta de acceso.

Fuente

[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 )  

Descripción

Cancela la operación actual de la base de datos incrustada.

Parámetros

Ninguno.

Valor devuelto

S_OK
La operación se canceló correctamente.

DB_E_CANTCANCEL
Actualmente no hay ninguna operación cancelable en curso.

E_FAIL
Error al cancelar la operación insertada.

Fuente

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

IMDEmbeddedData::GetSizeMax (IPersistStream::GetSizeMax)

HRESULT GetSizeMax (  
    [out] ULARGE_INTEGER * out_pcbSize  
    )  

Descripción

Obtiene el tamaño estimado (en bytes) de la secuencia para guardar el objeto incrustado. Se hereda de IPersistStream.

Parámetros

in_bstrPath
Tamaño estimado (en bytes) de la imagen de base de datos incrustada.

Valor devuelto

S_OK
El tamaño se obtuvo correctamente.

E_FAIL
Error al obtener el tamaño.

IMDEmbeddedData::IsDirty (IPersistStream::IsDirty)

HRESULT IsDirty ( void )  

Descripción

Comprueba si la base de datos incrustada ha cambiado desde que se guardó por última vez. Se hereda de IPersistStream.

Parámetros

Ninguno

Valores devueltos

S_OK
La base de datos ha cambiado desde que se guardó por última vez.

S_FALSE
La base de datos no ha cambiado desde que se guardó por última vez.

E_FAIL
Error al obtener el estado de la base de datos.

IMDEmbeddedData::Load (IPersistStream::Load)

HRESULT Load (   
    [in] IStream * in_pStm   
    )  

Descripción

Carga la base de datos insertada en el motor local o en proceso. Se hereda de IPersistStream.

Parámetros

in_pStm
Puntero a una interfaz de flujo desde dónde cargar la base de datos incrustada.

Valores devueltos

S_OK
La base de datos se cargó correctamente.

E_OUTOFMEMORY
Memoria insuficiente para cargar la base de datos.

E_FAIL
Error al cargar la base de datos, diferente de E_OUTOFMEMORY.

IMDEmbeddedData::Save (IPersistStream::Save)

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

Descripción

Guarda la base de datos local o en proceso en la secuencia insertada en el documento de contenedor. Se hereda de IPersistStream.

Parámetros

in_pStm
Puntero a una interfaz de flujo a donde guardar la base de datos incrustada.

in_fClearDirty
Marca que indica si la marca desfasada debe borrarse después de esta operación.

Valores devueltos

S_OK
La base de datos se guardó correctamente.

STG_E_CANTSAVE
Error al guardar la base de datos, diferente de STG_E_MEDIUMFULL.

STG_E_MEDIUMFULL
No se pudo guardar la base de datos porque no queda espacio en el dispositivo de almacenamiento.