Trabalhando com XML no SQL

Documentos relacionados
Tutorial do ADD Analisador de Dados Dinâmico.

Tabela e Gráficos Dinâmicos Como estruturar dinamicamente dados no Excel

Bem-vindo ao tópico sobre consultas no SAP Business One.

3 Resumo de dados com Tabelas e Gráficos dinâmicos

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Cadastro de Franquias. Cadastro de Tipo. Configuração da Exportação

Excel Planilhas Eletrônicas

Criando uma mala direta com o Word 2007 em 6 Passos

Capítulo 04: Persistência com SQLite

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

Manual do Módulo SAC

Tutorial Gerar arquivo PDF. Gerando um documento pdf com várias imagens 1- Inserir imagem no Word

Banco de Dados BrOffice Base

Análise de Dados do Financeiro

Processo de Controle das Reposições da loja

O sucesso de hoje não garante o sucesso de amanhã

Novas Funcionalidades do MyABCM v.4.0

César Cruz Proprietário [18/04]

Configurações Básicas

Como Implantar Agora 03 Controles Simples e Efetivos Para Você Garantir A RASTREABILIDADE Da Sua Empresa Sem Precisar Investir em Softwares Caros!

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Manual Sistema Débito Web Adsis/Disao Criado em 23/04/2012

APOSTILA DE EXCEL 2007

ALBUM DE FOTOGRAFIAS NO POWER POINT

OI CONTA EMPRESA MANUAL DO USUÁRIO

MICROSOFT OFFICE EXCEL 2007

Bem-vindo (a) à página de administrador para os noivos do CasarCasar.

Tutorial de Configuração do Integrador do E-commerce do FutebolShop

Facebook Instruções de integração com PayPal

CSF FasTest SOLUÇÕES DE OUTPUT DE PAGAMENTO

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

PARA A CONSTRUÇÃO DOS GRÁFICOS

Manual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V

Data Transformation Services (DTS) por Anderson Ferreira Souza

Manual das planilhas de Obras

Aula 09 - Atualização de uma tabela dinâmica. Aula 09 - Atualização de uma tabela dinâmica. Sumário. Atualizando a tabela dinâmica

Olá, esse é o manual feito para ajudar você a conhecer ainda mais o Painel Web que acompanha* App Kontrole.

MICROSOFT VISIO 2013 MODELOS ELABORANDO ORGANOGRAMAS

Sistema de Recursos Humanos

Noções de. Microsoft SQL Server. Microsoft SQL Server

Este documento visa facilitar e viabilizar a introdução ao módulo de Manufatura no Sistema

Tanto na visão semanal como diária você tem a sua disposição algumas opções uteis que facilitarão seu dia a dia.

MANUAL BACKUP XDENTAL 2012

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Trecho retirando do Manual do esocial Versão 1.1

Como fazer contato com pessoas importantes para sua carreira?

Como Gerar documento em PDF com várias Imagens

Construção do Boxplot utilizando o Excel 2007

Treinamento Sistema Condominium Módulo III

1. Objetivos do curso 2. 2 Comunicação Interna (CI) 13 3 Ofício 18 4 DEFINIÇÕES GERAIS 23 5 CONCLUSÃO 27

Como escrever melhor em 5 passos simples

Manual de criação de envios no BTG360

Roteiro 3: Apresentações eletrônicas (parte 1)

O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa?

É um prazer ter você como cliente da Agência WX.

- Versão 1.0 Página 1

Profº Aldo Rocha. Banco de Dados

Programa Adesivos Impressos Versão 4.0

ftp://ftp.cr-df.rnp.br/pub/netinfo/training/rnp/kit-bsb/html/guia.zip novembro 1996 Tutorial - Autoria em World Wide Web

Resolução da lista de exercícios de casos de uso

9 Comandos condicionais

MANUAL DO INSTAR-MAIL 1.0. Pagina de login e senha do Instar-Mail

SIAP - Sistema de Apoio ao Professor

WF Processos. Manual de Instruções

SCPI 8.0. Guia Rápido. Parametrizando o Módulo CONTAS. Introdução. Informações da Entidade. Nesta Edição

EXEMPLO DE COMO FAZER UMA MALA DIRETA

Esse manual é um conjunto de perguntas e respostas para usuários(as) do Joomla! 1.5.

MANUAL DO GERENCIADOR ESCOLAR WEB

WORKSHOP Ferramenta OLAP IBM Cognos

Data Cempro Informática Ltda. Integração WinLivros X ContabMilenium

CICLO DE APERFEIÇOAMENTO PROFISSIONAL DOS SERVIDORES MUNICIPAIS DE MARICÁ- RJ EDITOR DE TEXTO - WORD

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

ATUALIZAÇÃO DA VERSAO Abaixo constam as alterações referentes a versão do dia 02/05/2012:

Se você está começando a explorar o marketing digita com o YouTube, então você, certamente, já notou o quão poderosos são os vídeos.

Manual do Visualizador NF e KEY BEST

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Desenvolvendo Websites com PHP

UML Modelo Casos de Uso Estudo de Caso

Boletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web,

Unidade 5. Aba Anexos. Objetivos de Aprendizagem. Ao final desta Unidade, você deverá ser capaz de:

Android e Bancos de Dados

Repeater no GASweb. Regiões

Manual Sistema Mó vel Msys Cómercial

Professor: Macêdo Firmino Informática para Administração Introdução ao Excel

OBF40000 (PAINEL NF-E)

Layout : Este layout desenvolvido com html5 e css3 e compatível com qualquer dispositivo, ou seja, ele se molda para qualquer resolução, tablet,

COMO FAZER SEUS PEDIDOS ONLINE PASSO-A-PASSO

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Questão Essência do Excel

30 ANOS DE SOCIALISMO

MANUAL PARA ACESSO AO SISTEMA AOS REPRESENTANTES

Processo de Aplicação de Carreira na GE Construa sua carreira na GE

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

OFICIAL DA ORDEM MILITAR DE CRISTO MEDALHA DE EDUCAÇÃO FÍSICA E BONS SERVIÇOS. Circular n.º 023-A/2014 Portal F.P.T. - Inscrições (Aditamento)

Marco A. M. de Melo e Fernando S. P. Gonçalves MANAGER

NAVEGG GUIDE. Publisher: Como fazer retargeting para um cliente usando a funcionalidade Custom

Guia Site Empresarial

Transcrição:

Trabalhando com XML no SQL Nível - Intermediário Por: Francisco Drumond Algumas vezes nos deparamos com a necessidade de armazenar informações em um banco de dados de forma mais dinâmica. Não sabemos ao certo se haverá inclusão de novos campos e a cada alteração que fazemos precisamos criar um novo campo em nosso banco de dados. Uma solução bastante viável que pode ser usada é a persistência de informações em forma de XML (Extensible Markup Language). É claro que por questões de desempenho nem sempre podemos usar esse tipo de solução, mas se a intenção é salvar informações que tem modificações constantes dos dados que serão persistidos, essa se tornará uma solução bem simples de ser implementada e usada em seus sistemas. Vamos pensar de maneira mais prática, vamos imaginar que temos a necessidade de salvar algumas informações de veículos, porém existe alteração constante das informações que estamos salvando. A cada semana nos pedem para incluir um novo campo e outros deixam de existir, e todo aquele processo de solicitação para o DBA leva dias. Sendo assim, vamos usar uma solução mais simples. Passei algumas informações menos sensíveis para um XML que ficou com o formato abaixo: <Car> <price>20000</price> <make>volkswagen</make> <model>gol</model> <color>preto</color> <year>2008</year> <fuel>gnvl</fuel> <doors>5</doors> <seats>5</seats> <gears>5</gears> <mileage>50000</mileage> <transmission>manual</transmission> <engine_size>1781</engine_size> <power>75</power> <region>são Paulo</region> <city>são Paulo</city> <city_area>pinheiros</city_area> <postcode>14725-369</postcode> </Car> E essas informações foram gravadas em um campo Text do meu SQL. Com um select simples recebemos o seguinte retorno do SQL: SELECT CODIGO, XMLINF FROM TB_AUTOMOBILE 1/6

Bom, até aí tudo bem. Agora como vamos usar essa infomação em um sistema sem ter que fazer um parse ou montar novamente meu XML? No próprio SQL podemos usar CONVERT(XML, XMLINF)e isso irá retornar um campo do tipo XML Assim podemos selecionar somente um valor dentro desse XML usando um select um pouco mais elaborado. SELECT T.XMLCOLUMN.value('(//make)[1]', 'varchar(35)') AS 'make' FROM (SELECT CONVERT(XML, XMLINF) AS XMLCOLUMN FROM TB_Automobile) as T Agora podemos perquisar qualquer informação dentro do XML da mesma forma que faríamos com uma tabela comum. Podemos facilitar ainda mais e criar uma VIEW no SQL em que todas as informações necessárias possam ser extraidas diretamente como de uma tabela. CREATE VIEW V_TB_AUTOMOBILE AS ( SELECT T.XMLCOLUMN.value('(//make)[1]','varchar(35)') AS 'make', T.XMLCOLUMN.value('(//model)[1]','varchar(20)') AS 'model', T.XMLCOLUMN.value('(//price)[1]','int') AS 'price', T.XMLCOLUMN.value('(//transmission)[1]','varchar(35)') AS 'transmission', T.XMLCOLUMN.value('(//city)[1]','varchar(35)') AS 'city', T.XMLCOLUMN.value('(//color)[1]','varchar(35)') AS 'color', T.XMLCOLUMN.value('(//year)[1]','int') AS 'years', T.XMLCOLUMN.value('(//fuel)[1]','varchar(35)') AS 'fuel', T.XMLCOLUMN.value('(//doors)[1]','int') AS 'doors', T.XMLCOLUMN.value('(//gears)[1]','int') AS 'gears', T.XMLCOLUMN.value('(//mileage)[1]','int') AS 'mileage', T.XMLCOLUMN.value('(//engine_size)[1]','int') AS 'engine_size', T.XMLCOLUMN.value('(//power)[1]','varchar(35)') AS 'power' FROM (SELECT CONVERT(XML, XMLINF) AS XMLCOLUMN FROM TB_Automobile) as T ) 2/6

Agora posso acessar as informações somente pelo comando SELECT * FROM V_TB_AUTOMOBILE Por se tratar de uma View podemos realizar filtros e ordenar as informações como em uma tabela. SELECT MAKE, MODEL, PRICE, TRANSMISSION, CITY FROM V_TB_AUTOMOBILE WHERE MAKE = 'VOLKSWAGEN' ORDER BY PRICE Usando View no GASweb Dentro do GASweb podemos trabalhar com View sem problemas. Normalmente utilizamos elas na criação de relatórios mais elaborados onde algumas informações necessitam de acesso a várias tabelas. A View criada para acessar as informações persistidas pode ser importada ou criada dentro do GASweb. Com essa facilidade podemos diminuir bastante o tempo gasto no desenvolvimento de algum relatório. 3/6

Criando um Relatório Basicamente temos 2 maneiras de criar um relatório: arrastando um módulo de report para a tela e definindo suas propriedades Ou utilizando a forma automática do GASweb pelo botão O relatório gerado terá a seguinte aparência: 4/6 5/6

Porém, eu gostaria de exibir essas informações em forma de lista. Para isso eu alterei o layout para o modelo abaixo. Como resultado final temos as informações que estão gravadas em formato de XML exibidas em um relatório sem nenhuma dificuldade.

Ainda podemos mostrar essas informações em uma página. Para isso estou exibindo em um Repeater como foi demostrado no 4ª Artigo. No próximo artigo será sobre processo-pré definido no GASweb. Abraços e até a próxima! 6/6