Sdílet prostřednictvím


BLOBy a OLE objekty

Platí na:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformový systém (PDW)SQL databáze v Microsoft Fabric

Stáhnout ovladač OLE DB

Ovladač OLE DB pro SQL Server zpřístupňuje rozhraní ISequentialStream pro podporu uživatelského přístupu k SQL Server ntext, text1, image, varchar(max),nvarchar(max), varbinary(max) a xml jako binární velké objekty (BLOB). Metoda čtení na ISequentialStream umožňuje spotřebiteli získat většinu dat v zvládnutelných částech.

[1]: Použití rozhraní ISequentialStream pro vkládání dat kódovaných UTF-8 do sloupce staršího textu je omezeno pouze na servery podporující UTF-8. Pokus o spuštění tohoto scénáře při cílení na server, který nepodporuje UTF-8, povede k tomu, že ovladač zobrazí následující chybovou zprávu: "Streamování není podporováno přes vybraný typ sloupce".

Pro ukázku této vlastnosti viz Set Large Data (OLE DB).

Ovladač OLE DB pro SQL Server může používat uživatelsky implementované rozhraní IStorage , když uživatel poskytne ukazatel rozhraní v přístupovém zařízení určené pro úpravu dat.

Pro datové typy s velkou hodnotou OLE DB Driver pro SQL Server kontroluje předpoklady velikosti typů v rozhraní IRowset a DDL. Sloupce, které mají datové typy varchar,nvarchar a varbinary a maximální velikost nastavenou na neomezenou, budou reprezentovány jako ISLONG prostřednictvím řádků schématu a přes rozhraní vracející sloupcové datové typy.

Ovladač OLE DB pro SQL Server zobrazuje typy varchar(max),varbinary(max) a nvarchar(max) jako DBTYPE_STR, DBTYPE_BYTES a DBTYPE_WSTR.

Pro práci s těmito typy má aplikace následující možnosti:

  • Bind jako typ (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR). Pokud buffer není dostatečně velký, dojde k ořezání, přesně jako u těchto typů v předchozích verzích (i když nyní jsou k dispozici větší hodnoty).

  • Přiřadit jako typ a také specifikovat DBTYPE_BYREF.

  • Připojte DBTYPE_IUNKNOWN a používejte streamování.

Pokud je omezen na DBTYPE_IUNKNOWN, používá se funkčnost ISequentialStream stream. OLE DB Driver pro SQL Server podporuje výstupní parametry vazby stejně DBTYPE_IUNKNOWN pro datové typy s velkou hodnotou. To podporuje scénáře, kdy uložená procedura vrací tyto datové typy jako vrácené hodnoty, které budou klientovi vráceny jako DBTYPE_IUNKNOWN.

Omezení úložných objektů

  • Ovladač OLE DB pro SQL Server může podporovat pouze jeden otevřený objekt úložiště. Pokusy otevřít více než jeden úložný objekt (pro získání reference na více ukazatelů rozhraní ISequentialStream ) vracejí DBSTATUS_E_CANTCREATE.

  • V OLE DB Driver for SQL Server je výchozí hodnota vlastnosti pouze pro čtení DBPROP_BLOCKINGSTORAGEOBJECTS VARIANT_TRUE. Pokud je tedy objekt úložiště aktivní, některé metody (kromě metod na objektech úložiště) selžou s E_UNEXPECTED.

  • Délka dat prezentovaných uživatelsky implementovaným úložným objektem musí být sdělena ovladači OLE DB pro SQL Server při vytváření řádkového přístupu, který odkazuje na úložný objekt. Spotřebitel musí nastavit indikátor délky ve struktuře DBBINDING, která se používá pro tvorbu přístupu.

  • Pokud řádek obsahuje více než jednu velkou datovou hodnotu a DBPROP_ACCESSORDER není DBPROPVAL_AO_RANDOM, musí uživatel buď použít ovladač OLE DB pro řádky podporovaný kurzorem SQL Server pro získání dat v řádku, nebo zpracovat všechny velké datové hodnoty před získáním dalších řádků. Pokud je DBPROP_ACCESSORDER DBPROPVAL_AO_RANDOM, OLE DB Driver pro SQL Server ukládá všechny xml datové typy jako binární velké objekty (BLOB), aby k nim bylo možné přistupovat v libovolném pořadí.

V této sekci

Viz také

ovladač OLE DB pro programování SQL Serveru
Použití typů s velkou hodnotou