Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
O Driver OLE DB para SQL Server expõe a interface ISequentialStream para suportar o acesso do consumidor a SQL Server ntext, texto 1, imagem, varchar(max),nvarchar(max), varbinary(max) e tipos de dados xml como objetos binários grandes (BLOBs). O método Read no ISequentialStream permite ao consumidor recuperar muitos dados em blocos geríveis.
[1]: A utilização da interface ISequentialStream para inserir dados codificados em UTF-8 numa coluna de texto legada está limitada apenas a servidores que suportam UTF-8. Uma tentativa de executar este cenário ao direcionar um servidor que não suporta UTF-8 resultará no driver a publicar a seguinte mensagem de erro: "Streaming não suportado sobre o tipo de coluna selecionado".
Para um exemplo que demonstra esta funcionalidade, veja Set Large Data (OLE DB).
O Driver OLE DB para SQL Server pode usar uma interface IStorage implementada pelo consumidor quando o consumidor fornece o ponteiro de interface num acessor limitado para modificação de dados.
Para tipos de dados de grande valor, o OLE DB Driver para SQL Server verifica as suposições de tamanho de tipo nas interfaces IRowset e DDL. Colunas que tenham tipos de dados varchar, nvarchar e varbinary e tamanho máximo definido como ilimitado serão representadas como ISLONG através dos conjuntos de linhas do esquema e através de interfaces que retornam tipos de dados de coluna.
O Driver OLE DB para SQL Server expõe os tipos varchar(max), varbinary(max) e nvarchar(max) como DBTYPE_STR, DBTYPE_BYTES e DBTYPE_WSTR, respetivamente.
Para trabalhar com estes tipos, uma aplicação tem as seguintes opções:
Binding como tipo (DBTYPE_STR, DBTYPE_BYTES, DBTYPE_WSTR). Se o buffer não for suficientemente grande, ocorrerá truncamento, exatamente como para estes tipos em versões anteriores (embora valores maiores estejam agora disponíveis).
Associe como tipo e também especifique DBTYPE_BYREF.
Vincula como DBTYPE_IUNKNOWN e usa streaming.
Se vinculado a DBTYPE_IUNKNOWN, é utilizada a funcionalidade de fluxo ISequentialStream. O Driver OLE DB para SQL Server suporta parâmetros de saída de ligação como DBTYPE_IUNKNOWN para tipos de dados de grande valor. Isto serve para suportar cenários em que um procedimento armazenado devolve estes tipos de dados como valores de retorno, que serão devolvidos como DBTYPE_IUNKNOWN ao cliente.
Limitações dos Objetos de Armazenamento
O Driver OLE DB para SQL Server suporta apenas um único objeto de armazenamento aberto. As tentativas de abrir mais do que um objeto de armazenamento (para obter uma referência em mais do que um ponteiro de interface ISequentialStream ) retornam DBSTATUS_E_CANTCREATE.
No Driver OLE DB para SQL Server, o valor padrão da propriedade DBPROP_BLOCKINGSTORAGEOBJECTS só leitura é VARIANT_TRUE. Portanto, se um objeto de armazenamento estiver ativo, alguns métodos (para além dos métodos nos objetos de armazenamento) falharão com E_UNEXPECTED.
O comprimento dos dados apresentados por um objeto de armazenamento implementado pelo consumidor deve ser comunicado ao Driver OLE DB para SQL Server quando o acessor de linha que faz referência ao objeto de armazenamento for criado. O consumidor deve ligar um indicador de comprimento na estrutura DBBINDING usada para a criação do acessório.
Se uma linha contiver mais do que um único valor grande de dados e DBPROP_ACCESSORDER não for DBPROPVAL_AO_RANDOM, o consumidor deve usar um Driver OLE DB para um conjunto de linhas suportado por cursor SQL Server para recuperar dados de linha ou processar todos os valores de dados grandes antes de recuperar outros valores de linha. Se DBPROP_ACCESSORDER for DBPROPVAL_AO_RANDOM, o OLE DB Driver para SQL Server armazena em cache todos os tipos de dados xml como objetos binários grandes (BLOBs), para que possam ser acedidos em qualquer ordem.
Na presente seção
Ver também
Driver OLE DB para programação do SQL Server
Utilização de Tipos de Valor Grande