Utilizzo dell'archiviazione FILESTREAM nelle applicazioni client

Se si utilizza FILESTREAM per archiviare dati di oggetti binari di grandi dimensioni (BLOB), è possibile utilizzare API Win32 per usare i file. Per supportare l'utilizzo dei dati BLOB FILESTREAM nelle applicazioni Win32, SQL Server fornisce le seguenti funzioni e API:

  • PathName restituisce un percorso come token a un BLOB. Un'applicazione utilizza questo token per ottenere un handle Win32 e operare sui dati BLOB.

  • GET_FILESTREAM_TRANSACTION_CONTEXT () restituisce un token che rappresenta la transazione corrente di una sessione. Un'applicazione utilizza questo token per associare le operazioni di flusso file system FILESTREAM alla transazione.

  • Un handle di file Win32 è ottenuto in API OpenSqlFilestream. L'applicazione utilizza l'handle per trasmettere i dati FILESTREAM e può passare quindi l'handle alle seguenti API Win32: , , , , o . Se l'applicazione chiama qualsiasi altra API utilizzando l'handle, viene restituito un errore ERROR_ACCESS_DENIED. L'applicazione deve chiudere l'handle utilizzando .

Tutti gli accessi al contenitore di dati FILESTREAM vengono eseguiti in una transazione SQL Server. Le istruzioni Transact-SQL possono essere eseguite nella stessa transazione per mantenere la consistenza tra i dati SQL e i dati FILESTREAM.