OpenSqlFilestream API
The OpenSqlFilestream API obtains a Win32 compatible file handle for a FILESTREAM duży obiekt binarny (BLOB) that is stored in the file system. Dojście mogą być przekazywane do żadnego z następujących interfejsów Win32 API: ReadFile, WriteFile, TransmitFile, SetFilePointer, SetEndOfFile, or FlushFileBuffers.W przypadku przekazania tego dojścia do innych Win32 API, błąd, zwracana jest ERROR_ACCESS_DENIED.Dojście muszą być zamknięte przez przekazanie go do Win32 CloseHandle Interfejs API, zanim transakcja jest przekazana lub wycofana.Zamknij dojście nie spowoduje, że przecieków zasób po stronie serwera.
All FILESTREAM data container access must be performed in a SQL Server transaction.Transact-SQL statements can also be executed in the same transaction.To zachowanie spójności między arkuszem danych programu SQL i FILESTREAM BLOB danych.
Aby uzyskać dostęp do obiektu BLOB FILESTREAM za pomocą systemu Win32, Autoryzacja systemu Windows musi być włączony.
Important Note: |
---|
Plik jest otwarty do zapisu, transakcja jest własnością FILESTREAM agenta.Tylko plik Win32 we/wy jest dozwolone, dopóki transakcja została zwolniona.Aby zwolnić transakcji, muszą być zamknięte dojście do zapisu. |
HANDLE OpenSqlFilestream (
LPCWSTR FilestreamPath,
SQL_FILESTREAM_DESIRED_ACCESS DesiredAccess,
ULONG OpenOptions,
LPBYTE FilestreamTransactionContext,
SIZE_T FilestreamTransactionContextLength,
PLARGE_INTEGER AllocationSize);
Parameters
FilestreamPath
[w] Czy nvarchar(max) Ścieżka, która jest zwracany przez Ścieżka funkcja.Ścieżka musi być wywołana z kontekstu konta, które ma SQL Server SELECT lub UPDATE uprawnienia FILESTREAM tabel i kolumn.DesiredAccess
[w] Ustawia tryb używany do uzyskiwania dostępu do danych FILESTREAM BLOB.Ta wartość jest przekazywana do Funkcja DeviceIoControl.Imię i nazwisko
Wartość
Znaczenie
SQL_FILESTREAM_READ
0
Dane mogą zostać odczytane z pliku.
SQL_FILESTREAM_WRITE
1
Dane można zapisać do pliku.
SQL_FILESTREAM_READWRITE
2
Dane można odczytywać i zapisywane z pliku.
Uwaga
Te wartości są definiowane w wyliczeniu SQL_FILESTREAM_DESIRED_ACCESS w sqlncli.h.
OpenOptions
[w] Atrybuty plików i flagi.Parametr ten może również zawierać dowolnej kombinacji następujących flag.Flagi
Wartość
Znaczenie
SQL_FILESTREAM_OPEN_NONE
0x00000000:
Plik jest otwarty lub utworzony za pomocą nie specjalnych opcji.
SQL_FILESTREAM_OPEN_FLAG_ASYNC
0x00000001L
Plik jest otwarty lub utworzony dla asynchronicznego We/Wy.
SQL_FILESTREAM_OPEN_FLAG_NO_BUFFERING
0x00000002L
System otwiera plik przy użyciu nie buforowania systemu.
SQL_FILESTREAM_OPEN_FLAG_NO_WRITE_THROUGH
0x00000004L
System nie zapisuje za pośrednictwem pośrednich pamięci podręcznej.Zapisy przejść bezpośrednio do dysku.
SQL_FILESTREAM_OPEN_FLAG_SEQUENTIAL_SCAN
0x00000008L
Plik jest dostępny kolejno od początku do końca.Może być używana przez system to jako wskazówka dotycząca w celu zoptymalizowania buforowania plików.Jeśli aplikacja przenosi wskaźnika pliku o dostępie bezpośrednim, optymalną buforowanie nie może występować.
SQL_FILESTREAM_OPEN_FLAG_RANDOM_ACCESS
0x00000010L
Plik jest dostępny losowo.Może być używana przez system to jako wskazówka dotycząca w celu zoptymalizowania buforowania plików.
FilestreamTransactionContext
[w] Wartość zwracana przez GET_FILESTREAM_TRANSACTION_CONTEXT funkcja.FilestreamTransactionContextLength
[w] Liczba bajtów w varbinary(max) dane zwrócone przez funkcja GET_FILESTREAM_TRANSACTION_CONTEXT. Funkcja zwraca tablicę N bajtów.N jest określana przez funkcja i jest właściwością tablica bajtów, które są zwracane.AllocationSize
[w] Określa rozmiar początkowy alokacji pliku danych (w bajtach).Jest on ignorowany w trybie do odczytu.Ten parametr może mieć wartość NULL, w których jest używany przypadek domyślne zachowanie systemu plików.
Return Value
Jeśli funkcja się powiedzie, wartość zwracana jest otwarte dojście do określonego pliku.Jeśli ta funkcja zawiedzie, wartość zwracana jest INVALID_HANDLE_VALUE.Błąd rozszerzony informacji zadzwoń GetLastError().
Przykłady
Następujące przykłady przedstawiają metody korzystania OpenSqlFilestream Interfejs API uzyskiwania dojścia Win32.
Remarks
The SQL Server Native klient must be installed to use this API. The SQL Server Native klient is installed with SQL Server or SQL Server klient tools. Aby uzyskać więcej informacji zobaczInstalowanie klient macierzyste SQL Server.