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 noteImportant 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.