Aracılığıyla paylaş


OpenSqlFilestream API

The OpenSqlFilestream API obtains a Win32 compatible file handle for a FILESTREAM ikili büyük nesne (BLOB) that is stored in the file system. Aşağıdaki Win32 Apı'lerinin birini tanıtıcı geçirilebilir: ReadFile, WriteFile, TransmitFile, SetFilePointer, SetEndOfFile, or FlushFileBuffers.Bu tanıtıcı, diğer bir Win32 API için geçirirseniz, hata ERROR_ACCESS_DENIED döndürülür.Tanıtıcı için Win32 ileterek kapatılmalıdır. CloseHandle Hareketin tamamlandığı veya geri önce API.Işleyicinin kapatılması başarısız, sunucu tarafındaki kaynak sızıntılarını neden olur.

All FILESTREAM data container access must be performed in a SQL Server transaction.Transact-SQL statements can also be executed in the same transaction.Bu SQL veri ve FILESTREAM BLOB verileri arasında tutarlılığı sağlar.

Win32, FILESTREAM BLOB erişmek için Windows yetkilendirme etkinleştirilmiş olması gerekir.

Important noteImportant Note:

Yazma erişimi için bir dosya açıldığında, hareket FILESTREAM Aracısı tarafından aittir.Hareket yeniden yayımlanıncaya kadar yalnızca Win32 dosya g/Ç izin verilir.Hareketin serbest bırakmak için , yazma tanıtıcının kapatılması gerekir.

HANDLE OpenSqlFilestream (
    LPCWSTR FilestreamPath,
    SQL_FILESTREAM_DESIRED_ACCESS DesiredAccess,
    ULONG OpenOptions,
    LPBYTE FilestreamTransactionContext,
    SIZE_T FilestreamTransactionContextLength,
    PLARGE_INTEGER AllocationSize);

Parameters

  • FilestreamPath
    [] Iş nvarchar(max) tarafından döndürülen yol Yoladı işlev.PathName olan bir hesap bağlamından çağrılmalıdır. SQL Server SELECT veya FILESTREAM tablo ve sütun izinlerini UPDATE.

  • DesiredAccess
    [] FILESTREAM BLOB verilerine erişmek için kullanılan modu ayarlar.Bu değer geçirilir Deviceıocontrol işlev.

    Name

    Değer

    Anlamı

    sql_filestream_read

    0

    Dosya verilerini okuyabilir.

    sql_filestream_write

    1

    Veri dosyasına yazılabilir.

    sql_filestream_readwrite

    2

    Veri okuma ve olması dosyadan yazılır.

    Not

    Bu değerler SQL_FILESTREAM_DESIRED_ACCESS numaralandırma sqlncli.h içinde tanımlanır.

  • OpenOptions
    [] Dosya özniteliklerini ve işaretler.Bu parametre Aşağıdaki bayraklardan herhangi bir bileşimini de ekleyebilirsiniz.

    Bayrak

    Değer

    Anlamı

    sql_filestream_open_none

    0x00000000:

    Yüklenmekte olan bir dosya açıldığında veya özel seçenekleri ile oluşturulmuş.

    sql_filestream_open_flag_async

    0x00000001L

    Yüklenmekte olan bir dosya açıldığında veya zaman uyumsuz g/Ç için oluşturulmuş.

    sql_filestream_open_flag_no_buffering

    0x00000002L

    Sistem, sistem önbellekleme'yi kullanarak dosya açılır.

    sql_filestream_open_flag_no_write_through 

    0x00000004L

    Sistem, bir ara önbellek aracılığıyla yazmaz.Yazma doğrudan diske gidin.

    sql_filestream_open_flag_sequential_scan

    0x00000008L

    Bir dosya, sona erdirmek başlayarak sırayla erişilir.Sistem bu dosya önbelleği en iyi duruma getirmek için bir ipucu kullanabilirsiniz.Dosya işaretçisi rasgele erişim için bir uygulama taşınır, en iyi önbellekleme gerçekleşmeyebilir.

    sql_filestream_open_flag_random_access

    0x00000010L

    Bir dosya, rasgele erişilen.Sistem bu dosya önbelleği en iyi duruma getirmek için bir ipucu kullanabilirsiniz.

  • FilestreamTransactionContext
    [] Tarafından döndürülen değeri get_filestream_transaction_context işlev.

  • FilestreamTransactionContextLength
    [] Bayt sayısı varbinary(max) GET_FILESTREAM_TRANSACTION_CONTEXT işlev tarafından döndürülen veriler. Işlev, N bir bayt dizisi döndürür.N, işlev tarafından belirlenir ve döndürülen bayt dizisi özellik.

  • AllocationSize
    [] Veri dosyasının ilk ayırma boyutunu bayt olarak belirtir.Okuma modunda göz ardı edilir.Bu parametre NULL, Durum varsayılan dosya sistemi davranış kullanılan olabilir.

Return Value

Işlevin başarılı olursa, sonuç belirtilen dosyaya açık tanıtıcı değerdir.Dönüş değeri, işlev başarısız olursa, INVALID_HANDLE_VALUE türüdür.Genişletilmiş hata bilgileri için arama GetLastError().

Örnekler

Aşağıdaki örnekler, nasıl kullanacağınızı gösteren OpenSqlFilestream Win32 bir tanıtıcı elde etmek için APı'ı tıklatın.

Remarks

The SQL Server Native istemci must be installed to use this API. The SQL Server Native istemci is installed with SQL Server or SQL Server istemci tools. Daha fazla bilgi için bkz:SQL Server yerel istemcisi yükleme.