quarta-feira, 15 de fevereiro de 2012

Reporting Services - Orientando textos na Vertical

Ao implementar um relatório do SQL Server Reporting Services (SSRS), surgiu-me a necessidade de escrever alguns títulos de colunas na vertical para reduzir a largura das colunas e melhorar a apresentação do relatório.

O SSRS 2008 oferece esta funcionalidade através da propriedade WritingMode do controle TextBox, basta configurar a opção Vertical. Entretanto, ele não permite definir a orientação do texto (de cima para baixo, ou de baixo para cima), o que no meu caso seria importante. 

Pesquisei um pouco e descobri que esta funcionalidade já existe no SSRS 2008 R2. A propriedade WritingMode possui uma 4ª opção além de Default, Horizontal, e Vertical, é a opção Rotate270, que faz exatamente o que eu precisava.

Para contornar esta limitação, encontrei um artigo bastante interessante em um blog sobre o assunto. O texto mostra passo-a-passo como gerar uma imagem com o texto e a orientação desejados via código personalizado no próprio relatório.

A solução proposta não é trivial, mas resolveu o problema. Segue o link para o tutorial:


O artigo utiliza imagens para exemplificar os resultados. 
Testei em meu relatório e funcionou, inclusive foi possível configurar as cores da imagem gerada.

Para quem ainda não utiliza o SQL Server 2008 R2 ou precisa realizar manutenções em relatórios de versões antigas do SSRS e se depara com esse problema, vale a pena conferir!

segunda-feira, 6 de fevereiro de 2012

Inserir arquivo em tabela do banco de dados

Armazenar imagens e arquivos em um banco de dados pode garantir uma estrutura unificada dos dados do usuário, além de facilitar a criação de rotinas de backup, uma vez que os arquivos estarão no mesmo local em que os dados de tabelas.

O SQL Server permite, a partir da versão 2005, o carregamento de arquivos em tabelas com campos do tipo image ou VARBINARY(MAX).

O Bulk OLE DB provider é capaz de realizar esta tarefa, dispensando ferramentas de carga ou outros utilitários externos ao SQL Server. Para isso é necessário utilizá-lo juntamente com a função OPENROWSET().

Veja o exemplo abaixo:

   1:  CREATE TABLE Imagem
   2:  (
   3:    id INT IDENTITY PRIMARY KEY
   4:  , nome VARCHAR(100) NOT NULL
   5:  , tipoMIME VARCHAR(20) NOT NULL
   6:  , imagem VARBINARY(MAX)
   7:  )
   8:   
   9:  INSERT INTO Imagem VALUES ('Minha imagem','image/jpeg',
   10:  (SELECT * FROM OPENROWSET(BULK 'E:\Imagem.jpg', SINGLE_BLOB) AS A))


Obs1: No exemplo, a imagem encontra-se diretamente na unidade E: da máquina onde o SQL Server está instalado.

Obs2: O campo tipoMIME foi adicionado para facilitar a identificação do tipo de arquivo caso uma aplicação precise acessá-lo.

Em breve escreverei sobre como acessar o arquivo armazenado via aplicação Asp.Net.

Até a próxima!

quarta-feira, 1 de fevereiro de 2012

SQL Server 2012 Virtual Launch Event

No dia 7 de Março de 2012, a Microsoft realizará o SQL Server 2012 Virtual Launch Event, um evento on-line para promover a próxima versão do SQL Server.

O evento será composto de uma série de palestras promovidas pelo time de produto, parceiros SQL Server e também grandes clientes da própria Microsoft discutindo sobre os novos recursos e vantagens da próxima versão do SQL Server.

A agenda com todas as palestras pode ser conferida no site do evento. A participação é gratuita e a inscrição deve ser feita através do site:


Os participantes concorrerão a prêmios durante o evento.

Não deixe de aproveitar esta ótima chance de conhecer o SQL Server 2012, além de entrar em contato com a comunidade técnica!