NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 12 : 13
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO

Autor: Júlio Battisti
Lição 215 - Capítulo 12 - Testando o Acesso aos Dados do SQL Server 2005 Através do Navegador

Após termos configurado um diretório virtual associado com o Banco de Dados Northwind, podemos testar o acesso aos dados utilizando HTTP. O nosso diretório virtual é chamado NorthwindSQL, conforme configurado no exemplo anterior. Lembre que estou utilizando um computador com o nome de Servidor. Se você estiver utilizando um nome diferente, substitua pelo nome correspondente.

Outro detalhe a ser observado é que os dados são retornados no formato XML – Extensible Markup Language. No próximo item, falaremos um pouco sobre este padrão que vem sendo utilizado cada vez mais na industria de informática.

Para testar o acesso via HTTP, abra o Internet Explorer e digite o seguinte endereço:

http://servidor/NorthwindSQL?sql=SELECT * FROM Orders FOR XML AUTO&root=root

Este endereço envia o comando SELECT * FROM Orders para o Banco de Dados Northwind, associado com o diretório virtual NorthwindSQL. Os dados são retornados no formato XML, conforme indicado na Figura 12.49.

Curso Completo de SQL Server 2005 - Julio Battisti
Figura 12.49 Dados no formato XML.

Ainda não conhecemos o formato XML, mas posso adiantar que um documento no formato XML contém apenas dados, sem nenhuma informação a respeito do formato de exibição dos dados. A seguir, temos a parte inicial do documento, onde é retornado o registro para o Pedido 10248:

<Orders OrderID="10248" CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00" RequiredDate="1996-08-01T00:00:00" ShippedDate="1996-07-16T00:00:00" ShipVia="3" Freight="32.38" ShipName="Vins et alcools Chevalier" ShipAddress="59 rue de l'Abbaye" ShipCity="Reims" ShipPostalCode="51100" ShipCountry="France" />

Também temos a cláusula FOR XML, a qual faz com que os dados sejam retornados no formato XML.Podemos executar, praticamente, qualquer comando SELECT, com todas as suas cláusulas. Por exemplo, o endereço a seguir retorna apenas os pedidos da tabela Orders, em que o país é Brazil:

http://servidor/NorthwindSQL?sql=SELECT * FROM Orders WHERE ShipCountry=‘Brazil’ FOR XML AUTO&root=root

Alterando um pouco o endereço, podemos ordenar o resultado pela data do pedido, isto é, pelo campo OrderDate

http://servidor/NorthwindSQL?sql=SELECT * FROM Orders WHERE ShipCountry=‘Brazil’ Order By OrderDate FOR XML AUTO&root=root

Vejam que é apenas uma questão de utilizar o comando T-SQL correto.

Será que podemos utilizar uma cláusula Join? A melhor maneira de descobrir é tentando. Tente utilizar o seguinte endereço:

http://servidor/NorthwindSQL?sql=SELECT Orders.OrderID, Orders.OrderDate, Orders.ShipCountry, SUM(([Quantity]*[UnitPrice])*(1-[Discount])) As Total FROM Orders INNER JOIN [Order Details]

ON [Orders].[OrderID]=[Order Details].[OrderID]

GROUP BY Orders.OrderID, Orders.OrderDate, Orders.ShipCountry

HAVING (Orders.ShipCountry = ‘Brazil’) FOR XML AUTO&root=root

A sintaxe para o nosso comando está correta e irá rodar sem problemas no SQL Server 2005. Já no SQL Server 2000, se você tentasse executar este comando, irá receber a seguinte mensagem de erro:

MSSQLError HResult=“0x80040e14” Source=“Microsoft OLE DB Provider for SQL Server” Description=“GROUP BY and aggregate functions are currently not supported with FOR XML AUTO.”

A mensagem nos informa que a cláusula GROUP BY e funções de agregação (no nosso exemplo utilizamos o SUM), não são suportadas com a cláusula FOR XML AUTO, do SQL Server 2000. Esta foi uma das melhorias introduzidas pelo SQL Server 2005 em relação ao SQL Server 2000.

Para que este comando funcione no SQL Server 2000, você terá que alterá-lo. Vamos modificar um pouco o comando; ao invés da agrupar e totalizar vamos, simplesmente, calcular o total de cada item de cada pedido. Para isso, utilize o seguinte endereço:

http://servidor/NorthwindSQL?sql=SELECT Orders.OrderID, Orders.OrderDate, Orders.ShipCountry, (([Quantity]*[UnitPrice])*(1-[Discount])) As Total FROM Orders INNER JOIN [Order Details]

ON [Orders].[OrderID]=[Order Details].[OrderID]

WHERE Orders.ShipCountry = ‘Brazil’ FOR XML AUTO&root=root

A seguir, temos a parte inicial dos resultados obtidos:

<Orders OrderID=“10250”OrderDate=“1996-07-08T00:00:00”ShipCountry=“Brazil”Total=“77” />

<Orders OrderID=“10250”OrderDate=“1996-07-08T00:00:00”ShipCountry=“Brazil”Total=“1261.4” />

<Orders OrderID=“10250”OrderDate=“1996-07-08T00:00:00”ShipCountry=“Brazil”Total=“214.20001” />

<Orders OrderID=“10253”OrderDate=“1996-07-10T00:00:00”ShipCountry=“Brazil”Total=“200” />

<Orders OrderID=“10253”OrderDate=“1996-07-10T00:00:00”ShipCountry=“Brazil”Total=“604.79999” />

<Orders OrderID=“10253”OrderDate=“1996-07-10T00:00:00”ShipCountry=“Brazil”Total=“640” />

<Orders OrderID=“10256”OrderDate=“1996-07-15T00:00:00”ShipCountry=“Brazil”Total=“393” />

<Orders OrderID=“10256”OrderDate=“1996-07-15T00:00:00”ShipCountry=“Brazil”Total=“124.8” />

<Orders OrderID=“10261”OrderDate=“1996-07-19T00:00:00”ShipCountry=“Brazil”Total=“160” />

<Orders OrderID=”10261"OrderDate=”1996-07-19T00:00:00"ShipCountry=”Brazil”Total=”288" />

<Orders OrderID=”10287"OrderDate=”1996-08-22T00:00:00"ShipCountry=”Brazil”Total=”472.60001" />

Você já deve ter observado que o navegador converte o endereço digitado para um formato diferente. Por exemplo, os espaços em branco são substituídos por “%20”. Isto acontece porque existem alguns caracteres especiais que não podem fazer parte de um endereço. Por isso, estes caracteres especiais são substituídos pelos correspondentes permitidos.

Na Tabela 12.2, temos a descrição dos caracteres especiais e os correspondentes pelos quais são substituídos.

Este caracter É substituído por este (hexadecimal)
Espaço em branco %20
/ %2F
? %3F
% %25
# %23
& %26

Tabela 12.2 Caracteres especiais em endereços HTTP.

Agora que já vimos como acessar dados do servidor SQL Server 2005, através de um navegador, vamos ver uma breve introdução sobre o padrão XML. O tópico XML é assunto para vários livros. O SQL Server vem melhorando o suporte ao XML, desde o SQL Server 2000. Está fora do escopo deste livro, tratar sobre o uso do XML no SQL Server 2005. No tópico a seguir, eu farei apenas uma breve apresentação do XML. No Books Online, você encontra grande quantidade de informações sobre o uso do XML no SQL Server 2005. Pesquise no tópico: Database Engine -> Using XML in SQL Server. Além disso, certamente, serão publicados livros inteiros sobre o uso do XML no SQL Server 2005.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Capa da Universidade do Access

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI