Compartilhar via


Como definir dados grandes (OLE DB)

Para transmitir um ponteiro para seu próprio objeto de armazenamento, o consumidor cria um acessador que associa o valor da coluna BLOB e chama os métodos IRowsetChange::SetData ou IRowsetChange::InsertRow.

Procedimentos

Para definir dados BLOB

  1. Crie uma estrutura DBOBJECT que descreve como a coluna BLOB deve ser acessada. Defina o elemento dwFlag da estrutura DBOBJECT como STGM_READ e defina o elemento iid como IID_ISequentialStream (a interface a ser exposta).

  2. Defina as propriedades no grupo de propriedades DBPROPSET_ROWSET para que o conjunto de linhas seja atualizável.

  3. Crie um conjunto de associações (uma de cada coluna) usando uma matriz de estruturas DBBINDING. Defina o elemento wType na estrutura DBBINDING como DBTYPE_IUNKNOWN e o elemento pObject para apontar para a estrutura DBOBJECT que você criou.

  4. Crie um acessador que usa as informações de associação na matriz de estruturas DBBINDINGS.

  5. Chame GetNextRows para buscar as linhas seguintes no conjunto de linhas. Chame GetData para ler os dados do conjunto de linhas.

  6. Para definir os dados, crie um objeto de armazenamento que contém os dados (e também o indicador de comprimento) e chame IRowsetChange::SetData (ou IRowsetChange::InsertRow) com o acessador que associa a coluna BLOB.

Comentários

O código de exemplo completo está no arquivo WorkingWithBLOBs.cpp. Você pode baixar um arquivo que contém o exemplo da página de Downloads do SQL Server no MSDN.

Esse exemplo foi desenvolvido com o Microsoft Visual C++ 2005.

Observação sobre segurançaObservação sobre segurança

Quando possível, use a Autenticação do Windows. Se a Autenticação do Windows não estiver disponível, solicite aos usuários que digitem suas credenciais em tempo de execução. Evite armazenar as credenciais em um arquivo. Se for necessário manter as credenciais, criptografe-as com a API de criptografia Win32.