Compartir a través de


Cómo establecer datos de gran tamaño (OLE DB)

Para pasar un puntero a su propio objeto de almacenamiento, el consumidor crea un descriptor de acceso que enlaza el valor de la columna BLOB y, a continuación, llama a los métodos IRowsetChange::InsertRow o IRowsetChange::SetData.

Procedimientos

Para establecer los datos BLOB

  1. Cree una estructura DBOBJECT que describa cómo se debe obtener acceso a la columna BLOB. Establezca el elemento dwFlag de la estructura DBOBJECT en STGM_READ y establezca el elemento iid en IID_ISequentialStream (la interfaz que se va a exponer).

  2. Establezca las propiedades en el grupo de propiedades DBPROPSET_ROWSET de modo que el conjunto de filas sea actualizable.

  3. Cree un conjunto de enlaces (uno de cada columna) utilizando una matriz de estructuras DBBINDING. Establezca el elemento wType de la estructura DBBINDING en DBTYPE_IUNKNOWN y el elemento pObject que señale a la estructura DBOBJECT creada.

  4. Cree un descriptor de acceso utilizando la información de enlace de la matriz de estructuras DBBINDINGS.

  5. Llame a GetNextRows para capturar las filas siguientes en el conjunto de filas. Llame a GetData para leer los datos del conjunto de filas.

  6. Para establecer los datos, cree un objeto de almacenamiento que contiene los datos (y también el indicador de longitud) y, a continuación, llame a IRowsetChange::SetData (o a IRowsetChange::InsertRow) con el descriptor de acceso que enlaza la columna BLOB.

Notas

El ejemplo de código completo se encuentra en el archivo WorkingWithBLOBs.cpp. Puede descargar un archivo que contiene el ejemplo en la página de descargas de SQL Server en MSDN.

Este ejemplo se desarrolló con Microsoft Visual C++ 2005.

Nota de seguridadNota de seguridad

Siempre que sea posible, utilice la autenticación de Windows. Si la autenticación de Windows no está disponible, solicite a los usuarios que escriban sus credenciales en tiempo de ejecución. No guarde las credenciales en un archivo. Si tiene que conservar las credenciales, debería cifrarlas con la API de criptografía de Win32.