Compartir a través de


Interfaz IMDEmbedded

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

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

  • Establezca la dirección URL del documento contenedor.

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

  • Establezca la ruta de acceso a los archivos temporales que usa la aplicación de incrustación.

  • Cancele la operación incrustada actual.

  • Obtenga el tamaño calculado (en bytes) del flujo 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 incrustada en el motor local o en proceso. Se hereda de IPersistStream.

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

Referencia

La siguiente referencia documenta la interfaz de IMDEmbedded según se presenta 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 que usa la aplicación host para el flujo incrustado en el documento contenedor.

Parámetros

  • out_pbstrStreamId
    Especifica la ubicación del identificador del flujo.

Valor devuelto

  • S_OK
    El identificador del flujo se devolvió correctamente.

  • S_FALSE
    No hay ningún identificador del flujo.

  • E_FAIL
    Se produjo un error al tener acceso al identificador del flujo.

Observaciones

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

Los valores posibles de DBPROP_MSMD_EMBEDDED_DATA son:

Nombre

Valor

Definición

DBPROPVAL_EMBED_NONE

0x00

No hay ninguna base de datos incrustada

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, el servidor de SharePoint)

Source

[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 el flujo incrustado.

Parámetros

  • in_bstrURL
    Especifica la dirección URL del documento contenedor.

Valor devuelto

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

  • E_FAIL
    Se produjo un error al establecer la dirección URL del elemento contenedor.

Origen

[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 incrustación está en un entorno hospedado.

Parámetros

  • in_ftHosted
    TRUE, si el autor de la llamada se hospeda en una aplicación de servicio (como IIS).

Valor devuelto

  • S_OK
    La marca se estableció correctamente.

  • E_FAIL
    Se produjo un error al establecer la marca.

Source

[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 que usa la aplicación de incrustación.

Parámetros

  • in_bstrPath
    Ruta de acceso que usa la aplicación host para los archivos temporales.

Valor devuelto

  • S_OK
    El directorio de archivo temporal se estableció correctamente.

  • E_FAIL
    Se produjo un error al establecer la ruta de acceso.

Origen

[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 de base de datos incrustada actual

Parámetros

Ninguno.

Valor devuelto

  • S_OK
    La operación se canceló correctamente.

  • DB_E_CANTCANCEL
    No hay ninguna operación cancelable actualmente en curso.

  • E_FAIL
    Se produjo un error al cancelar la operación incrustada.

Origen

[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 calculado (en bytes) del flujo para guardar el objeto incrustado. Se hereda de IPersistStream.

Parámetros

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

Valor devuelto

  • S_OK
    El tamaño se obtuvo correctamente.

  • E_FAIL
    Se produjo un 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
    Se produjo un 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 incrustada en el motor local o en proceso. Se hereda de IPersistStream.

Parámetros

  • in_pStm
    Puntero a una interfaz de flujo desde donde cargar la base de datos incrustada.

Valores devueltos

  • S_OK
    La base de datos se cargó correctamente.

  • E_OUTOFMEMORY
    No hay suficiente memoria para cargar la base de datos.

  • E_FAIL
    Se produjo un 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 el flujo incrustado en el documento contenedor. Se hereda de IPersistStream.

Parámetros

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

  • in_fClearDirty
    Marca que indica si la marca modificada se debería borrar después de esta operación.

Valores devueltos

  • S_OK
    La base de datos se guardó correctamente.

  • STG_E_CANTSAVE
    Se produjo un error al guardar la base de datos, diferente de STG_E_MEDIUMFULL.

  • STG_E_MEDIUMFULL
    La base de datos no se pudo guardar porque no queda ningún espacio en el dispositivo de almacenamiento.