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.