quinta-feira, 29 de novembro de 2012

Tirinha sobre SQL Injection

Hoje me lembrei de uma tirinha antiga, mas bastante útil para ressaltar a importância de tratar todos os comandos enviados ao banco de dados, e assim evitar ataques de SQL Injection. Por sorte, encontrei a tirinha no XKCD.com

Segue a tirinha:

http://xkcd.com/327/

Segue também um link do MSDN, que aborda o tema e os tratamentos para evitar este tipo de ataque no SQL Server: MSDN - SQL Injection


quarta-feira, 29 de agosto de 2012

Certificação Microsoft: Vouchers para Second Shot estão disponíveis!

Pessoal!

A Microsoft está distribuindo Vouchers de segunda chance (Second Shot) para os exames de certificação em suas tecnologias (incluindo para o exame MCSA: SQL Server 2012 Certification). Os candidatos que adquirirem uma prova utilizando o voucher terão direito a uma nova tentativa gratuita em caso de reprova na primeira oportunidade. 

Para adquirir um voucher, basta acessar a URL abaixo e seguir as instruções (em inglês):


A lista dos exames que podem ser obtidos com o voucher pode ser encontrada na página abaixo:


Quem tiver interesse deve se apressar, pois a promoção é por tempo limitado!

Boa sorte!

quarta-feira, 28 de março de 2012

Simulado para o exame 70-432

O Blog do Fabrício Lima tomou uma iniciativa interessante para ajudar os profissionais a se prepararem para o exame de certificação em SQL Server. O autor tem publicado em uma série de artigos várias questões baseadas no Training Kit da prova.

Segue o link para o primeiro artigo, com as primeiras 5 questões:



Quem desejar se preparar para os exames de certificação em SQL Server, pode encontrar diversos materiais aqui no blog, basta procurar pelos marcadores: 70-432, 70-433 e 70-448.

Bom estudo!

terça-feira, 27 de março de 2012

MVA - Treinamentos Microsoft Gratuitos On-line

A Microsoft inaugurou recentemente um novo portal de treinamentos on-line, o MVA - Microsoft Virtual Academy. Este reúne cursos divididos em roteiros diversos roteiros, todos baseados em tecnologias de nuvem desenvolvidas pela própria Microsoft.

 No roteiro de SQL Server existem 2 cursos muito relevantes:
  • Introdução ao SQL Server 2008 R2  - oferece uma visão geral sobre o SQL Server 2008 R2, conceitos de escalabilidade, alta disponibilidade e ferramentas de Business Intelligence.
     
  • Introdução à Business Intelligence - introduz conceitos importantes em Business Inteligence (BI), como o Datawarehouse, OLAP, cubo, ETL, etc. Além disso, apresenta as ferramentas do SQL Server para Business Intelligence.
O portal também exibe um ranking de profissionais, baseado no número de cursos realizados. Os estudantes cadastrados podem ganhar pontos e elevar sua posição no ranking a cada módulo de curso concluído.

Os treinamentos são gratuitos e, para realizá-lo, basta ter uma conta no serviço Live.

Aproveite esta oportunidade!
Até a próxima!

quarta-feira, 21 de março de 2012

Vídeo: História do SQL Server

A Microsoft divulgou no Youtube e em seu site um vídeo que conta a história do SQL Server, desde a primeira versão (SQL Server 1.0), resultado de uma parceria entre a Microsoft e a SyBase, em 1988, até a mais recente novidade, o SQL Server 2012, que está para ser lançado. 

Vale a pena conferir!


E vamos aguardar o lançamento do SQL Server 2012!

Arredondamento com Intervalo

Trabalhando com SQL Server 2000, surgiu-me a necessidade de arredondar valores decimais utilizando intervalos múltiplos de um valor que é obtido em uma tabela.

Infelizmente, o máximo que obtive das funções do SQL Server foi um arredondamento para cima, dado um número de casas decimais. O comando abaixo foi utilizado:

   1:  SELECT ROUND(2.1234,1) AS ValorArredondado1
   2:  SELECT ROUND(2.1234,2) AS ValorArredondado2
   3:  SELECT ROUND(2.1234,3) AS ValorArredondado3
   4:  SELECT ROUND(2.1234,4) AS ValorArredondado4

Observe o resultado:

ValorArredondado1
---------------------------------------
2.1000

ValorArredondado2
---------------------------------------
2.1200

ValorArredondado3
---------------------------------------
2.1230

ValorArredondado4
---------------------------------------
2.1234

Mas esse não é o resultado esperado, era necessário que o valor arredondado fosse obrigatoriamente o próximo múltiplo de um número (intervalo) passado como parâmetro.

Como não encontrei nada parecido nas funções de sistema do SQL Server, implementei a função abaixo para resolver o problema.

   1:  CREATE FUNCTION fn_ArredondaIntervalo
   2:  (
   3:        @Valor                         DECIMAL(18,2)
   4:       ,@Intervalo                     DECIMAL(18,2)
   5:   )
   6:  RETURNS DECIMAL(18,2)
   7:  AS
   8:  BEGIN
   9:      RETURN CEILING(@Valor / @Intervalo) * @Intervalo
  12:  END
  13:  GO


Para executá-la, deve-se utilizar chamadas como as do exemplo abaixo:

   1:  SELECT dbo.fn_ArredIntervalo(2.1234,.1) AS V1
   2:  SELECT dbo.fn_ArredondaIntervalo(2.1234,.25) AS V2
   3:  SELECT dbo.fn_ArredondaIntervalo(2.1234,.5) AS V3
   4:  SELECT dbo.fn_ArredondaIntervalo(2.1234,1) AS V4

Veja o resultado da execução:

V1
---------------------------------------
2.20

V2
---------------------------------------
2.25

V3
---------------------------------------
2.50

V4
---------------------------------------
3.00

Dessa forma, obtive o resultado esperado. No resultado acima, o número 2,1234 foi arredondado para o próximo múltiplo de 0,1 (em V1), próximo múltiplo de 0,25 (em V2) e assim por diante.

Até a próxima!

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!


quinta-feira, 26 de janeiro de 2012

DevBrasil Summit 2012

No dia 11 de fevereiro, a comunidade técnica promoverá, com o apoio da Microsoft o DevBrasil Summit 2012. Durante o evento serão realizadas palestras sobre as mais recentes tecnologias da Microsoft, tendo como público alvo os programadores que utilizam sua plataforma.

O evento é gratuito e as inscrições podem ser feitas on-line através da página do evento. A programação completa do evento também pode ser encontrada nesta página.
Local: FIAP (São Paulo/SP)
Data: 11/02/2012
Horário de Início: 08:30
Horário de Término: 17:00
Se tiver interesse faça já a sua inscrição, pois as vagas são limitadas!

Abaixo, o local do evento:


Até a próxima!

terça-feira, 24 de janeiro de 2012

[Off-topic] Formatando código-fonte ao publicar

Esta dica é para quem publica código-fonte em C#, VB, HTML ou T-SQL e procura uma forma rápida de formatá-lo em HTML.

Com o Manoli C# Code Format, basta inserir o código-fonte, selecionar a linguagem desejada, as opções de formatação e com um clique será gerado o código HTML com o CSS do código com os destaques da linguagem especificada.

Existe também a opção de alternar as cores das linhas e exibir o número de cada linha.

Vale a pena conferir:

http://www.manoli.net/csharpformat/

Não tenho dúvidas de que o código fica muito mais legível. Veja um exemplo em C#:

// Hello1.cs
public class Hello1
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, World!");
   }
}

Após formatá-lo usando a ferramenta indicada, obtive:

   1:  // Hello1.cs
   2:  public class Hello1
   3:  {
   4:     public static void Main()
   5:     {
   6:        System.Console.WriteLine("Hello, World!");
   7:     }
   8:  }

Aos poucos, atualizarei a exibição de todos os scripts deste blog para que fiquem mais legíveis.

Até a próxima!