Serializar e trabalhar com um documento numa base de dados

Uma das tarefas que talvez seja necessário realizar ao trabalhar com documentos é armazenar e recuperar objetos Document de e para um banco de dados. Por exemplo, isso seria necessário se estivesse a implementar qualquer tipo de Sistema de gestão de conteúdos. Todas as versões anteriores dos documentos devem ser armazenadas no sistema de base de dados. A capacidade de armazenar documentos na base de dados também é extremamente útil quando a sua aplicação fornece um serviço baseado na web.

Aspose.Words fornece a capacidade de converter um documento em uma matriz de bytes para trabalhos subsequentes com este documento em um banco de dados.

Converter um documento em Matriz de bytes

Para armazenar um documento numa base de dados ou para preparar um documento para transmissão através da web, é frequentemente necessário serializar o documento para obter uma matriz de bytes.

Para serializar um objecto Document em Aspose.Words:

  1. Salve-o em um MemoryStream usando a sobrecarga do método Save da classe Document.
  2. Chame o método ToArray, que retorna uma matriz de bytes representando o documento em forma de byte.

As etapas acima podem ser revertidas para carregar os bytes de volta em um objeto Document.

O exemplo abaixo mostra como serializar um objeto Document para obter uma matriz de bytes e, em seguida, como desserializar a matriz de bytes para obter um objeto Document novamente:

Armazenar, ler e apagar um documento numa base de dados

Esta seção mostra como salvar um documento em um banco de dados e, em seguida, carregá-lo novamente em um objeto Document para trabalhar com ele. Para simplificar, o nome do arquivo é a chave usada para armazenar e buscar documentos do banco de dados. A base de dados contém duas colunas. A primeira coluna “FileName” é armazenada como uma String e é usada para identificar documentos. A segunda coluna “FileContent " é armazenada como um objeto BLOB que armazena o objeto document na forma de byte.

O exemplo de código a seguir mostra como configurar uma conexão com um banco de dados e executar comandos:

O exemplo de código a seguir mostra como salvar um documento no banco de dados, depois ler o mesmo documento novamente e, finalmente, excluir o registro que contém o documento do banco de dados:

Guardar um documento numa base de dados

Para salvar um documento em um banco de dados, converta este documento em uma matriz de bytes, conforme descrito no início deste artigo. Em seguida, salve essa matriz de bytes em um campo de banco de dados.

O exemplo de código a seguir mostra como salvar um documento no banco de dados especificado:

Especifique commandString, que é uma expressão SQL que faz todo o trabalho:

  • Para salvar um documento no banco de dados, o comando “INSERT INTO” é usado e uma tabela especificada junto com os valores de dois campos de registro – FileName e FileContent. Para evitar parâmetros adicionais, o nome do ficheiro é retirado do próprio objecto Document. O valor do campo FileContent é atribuído bytes do fluxo de memória, que contém uma representação binária do documento armazenado.
  • A linha de código restante executa o comando que armazena o documento Aspose.Words na base de dados.

Recuperar um documento de uma base de dados

Para recuperar um documento do banco de dados, selecione o registro que contém os dados do documento como uma matriz de bytes. Em seguida, carregue a matriz de bytes do registro em MemoryStream e crie um objeto Document que carregará o documento a partir do MemoryStream.

O exemplo de código a seguir mostra como recuperar e retornar um documento do banco de dados especificado usando o nome do arquivo como uma chave para buscar este documento:

Eliminar um documento de uma base de dados

Para excluir um documento do banco de dados, use o comando SQL apropriado sem nenhuma manipulação no objeto Document.

O exemplo de código a seguir mostra como excluir um documento do banco de dados, usando o nome do arquivo para buscar o registro: