Usar el almacenamiento FILESTREAM en aplicaciones cliente

Al usar FILESTREAM para almacenar datos de objeto binario (BLOB), puede usar las API de Win32 para trabajar con los archivos. Para permitir trabajar con datos de FILESTREAM BLOB en aplicaciones de Win32, SQL Server proporciona la API y las funciones siguientes:

  • PathName devuelve una ruta de acceso como token a un BLOB. Una aplicación usa este token para obtener un identificador de Win32 y operar en los datos BLOB.

  • GET_FILESTREAM_TRANSACTION_CONTEXT() devuelve un token que representa la transacción actual de una sesión. Una aplicación usa este token para enlazar las operaciones de transmisión por secuencias del sistema de archivos FILESTREAM a la transacción.

  • La API OpenSqlFilestream obtiene un identificador de archivos de Win32. La aplicación usa el identificador para transmitir en secuencias los datos de FILESTREAM y, a continuación, puede pasar el identificador a las API de Win32 siguientes: ReadFile, WriteFile, TransmitFile, SetFilePointer, SetEndOfFile o FlushFileBuffers. Si la aplicación llama a cualquier otra API usando el identificador, se devuelve un error de ERROR_ACCESS_DENIED. La aplicación debería cerrar el identificador usando CloseHandle.

Todo el acceso de contenedor de datos de FILESTREAM se realiza en una transacción de SQL Server. Las instrucciones de Transact-SQL se pueden ejecutar en la misma transacción para mantener la coherencia entre los datos de SQL y FILESTREAM.