Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server Windows rendszeren
Az SQL Server 2008-tól (10.0.x) kezdve az OLE DB Driver for SQL Server támogatja a továbbfejlesztett FILESTREAM funkciót. A mintákért lásd a FILESTREAM és OLE DB oldalakat.
A FILESTREAM lehetőséget kínál nagy bináris értékek tárolására és elérésére, akár SQL Serveren, akár közvetlen hozzáféréssel a Windows fájlrendszerhez. A nagy bináris érték 2 gigabájtnál (GB) nagyobb. További információért a továbbfejlesztett FILESTREAM támogatásról lásd: FILESTREAM (SQL Server).
Amikor egy adatbázis-kapcsolatot megnyitnak, @@TEXTSIZE-1 alapértelmezés szerint (korlátlan) állapotban van.
Lehetséges a FILESTREAM oszlopokhoz való hozzáférés és frissítés Windows fájlrendszer API-k segítségével is.
További információért lásd: Access FILESTREAM Data with OpenSqlFilestream.
FILESTREAM oszlopok lekérdezése
Az OLE DB-ben lévő sémasorhalmazok nem jelentik, hogy egy oszlop FILESTREAM oszlop-e.
ITableDefinition az OLE DB-ben nem használható FILESTREAM oszlop létrehozására.
A FILESTREAM oszlopok létrehozásához vagy annak felismeréséhez, hogy mely meglévő oszlopok FILESTREAM oszlopok, is_filestream használhatjuk a sys.columns katalógus nézet oszlopát.
A következő szkriptrendszer egy példa:
-- Create a table with a FILESTREAM column.
CREATE TABLE Bob_01 (
GuidCol1 UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE DEFAULT NEWID(),
IntCol2 INT,
varbinaryCol3 VARBINARY(MAX) FILESTREAM
);
-- Find FILESTREAM columns.
SELECT name
FROM sys.columns
WHERE is_filestream = 1;
-- Determine whether a column is a FILESTREAM column.
SELECT is_filestream
FROM sys.columns
WHERE name = 'varbinaryCol3'
AND object_id IN (
SELECT object_id
FROM sys.tables
WHERE name = 'Bob_01'
);
Down-Level Kompatibilitás
Ha az ügyfeled az OLE DB Driver for SQL Server segítségével lett fordítva, és az alkalmazás csatlakozik az SQL Server 2012 (11.x) és újabb verziókhoz, akkor a varbinary(max) viselkedés kompatibilis az SQL Server Native Client által az SQL Server 2005 (9.x) rendszerében bevezetett viselkedéssel. Vagyis a visszaküldött adatok maximális mérete 2 GB-ra korlátozott. 2 GB-nál nagyobb eredményértékek esetén csonkítás történik, és "string adat jobb levágása" figyelmeztetés jelenik meg.
Amikor az adattípus kompatibilitást 80-ra állítjuk, az ügyfél viselkedése összhangban van az alsóbb szintű kliensek viselkedésével.
Az SQLOLEDB-t vagy más, SQL Server 2005 (9.x) előtt megjelent szolgáltatókat használó ügyfelek esetében a varbinary(max)képhez van leképezve.
Comments
A 2 GB feletti varbináris (maximum) értékek küldéséhez és fogadásához egy alkalmazás paraméter- és eredménykötéseket használ
DBTYPE_IUNKNOWN. Paraméterekhez a szolgáltatónak az ISequentialStream esetén az IUnknown::QueryInterface funkciót kell hívnia, illetve az ISequentialStream-et visszaadó eredmények esetén.Az OLE DB esetén az ISequentialStream értékekhez kapcsolódó ellenőrzés lazítva van. Ha a wType a
DBBINDINGszerkezetbenDBTYPE_IUNKNOWNvan, a hosszellenőrzés letiltható dwPart-ból kihagyássalDBPART_LENGTH, vagy az adat hosszának (az adatpufferben elolló obLength-nél) beállításával.~0Ebben az esetben a szolgáltató nem ellenőrzi az érték hosszát, hanem kéri és visszaküldi az összes elérhető adatot a streamen keresztül. Ez a változás minden nagy objektum (LOB) típusra és XML-re érvényes, de csak akkor van SQL Server 2005 (9.x) (vagy újabb szerverekhez) csatlakoztatva. Ez nagyobb rugalmasságot biztosít a fejlesztőknek, miközben fenntartja a konzisztenciát és visszafelé kompatibilitást a meglévő alkalmazások és az alsóbb szintű szerverek számára. Ez a változás minden adatátviteli felületet érint, elsősorbanIRowset::GetData,ICommand::Execute, ésIRowsetFastLoad::InsertRow.