Suporte a FILESTREAM (OLE DB)

Aplica-se a: SQL Server

Importante

O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) no futuro.

A partir do SQL Server 2008 (10.0.x) e do SQL Server Native Client 10.0, o OLE DB oferece suporte ao recurso FILESTREAM aprimorado. Para obter mais informações sobre esse recurso, consulte Suporte a FILESTREAM. Para ver exemplos, confira Fluxo de arquivos e OLE DB.

Para enviar e receber valores varbinary(max) maiores que 2 GB, um aplicativo usa DBTYPE_IUNKNOWN nas associações de parâmetro e resultado. Para os parâmetros, o provedor precisa chamar IUnknown::QueryInterface para ISequentialStream e os resultados que retornam ISequentialStream.

Para o OLE DB, a verificação relacionada aos valores ISequentialStream será aliviada. Quando wType for DBTYPE_IUNKNOWN no struct DBBINDING, a verificação do comprimento poderá ser desabilitada pela omissão de DBPART_LENGTH de dwPart ou pela configuração do comprimento dos dados (no deslocamento obLength no buffer de dados) para aproximadamente 0. Nesse caso, o provedor não verificará o comprimento do valor, e solicitará e retornará todos os dados disponíveis através do fluxo. Essa alteração será aplicada a todos os tipos LOB (objeto grande) e XML, mas somente quando conectados a servidores SQL Server 2005 (9.x) (ou posterior). Isso oferecerá maior flexibilidade para desenvolvedores, ao mesmo tempo mantendo a consistência e compatibilidade com aplicativos e servidores de versões anteriores existentes.

Essa alteração afeta todas as interfaces que transferem dados, principalmente IRowset::GetData, ICommand::Execute e IRowsetFastLoad::InsertRow.

Confira também

Programação do SQL Server Native Client