49
Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre Linguagem de Manipulação de Dados; Estudo da linguagem SQL; Grades Relatórios, Módulo de dados; Execução e passagem de parâmetros para uma (Query) site: http://www1.univap.br/~wagner Prof. Responsável Wagner Santos C. de Jesus 1

Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Embed Size (px)

Citation preview

Page 1: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira Fernandes

Disciplina Ferramenta de Desenvolvimento Rápido de

Aplicação

Material IV-BimestreLinguagem de Manipulação de Dados; Estudo da

linguagem SQL; Grades Relatórios, Módulo de dados;

Execução e passagem de parâmetros para uma (Query)

site: http://www1.univap.br/~wagner

Prof. Responsável

Wagner Santos C. de Jesus1

Page 2: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Usando a Linguagem de Manipulação de Dados. (SQL)

A linguagem SQL (Structure Query Language) Linguagem de Estrutura de Consulta. Possibilita uma estrutura única de comandos que podem ser usados em qualquer Banco de Dados do Mercado com maior rapidez e eficiência na escrita de códigos de operações básicas de manipulação de dados.

2

Page 3: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Em Delphi existe duas maneiras de incorporar SQL a projetos

• Usando o mecanismo de banco de dados SQL integrado.

• Usando um servidor de banco de dados interno.

• Usando uma conexão Client/Server.

3

Page 4: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Estrutura da LinguagemSQL

• Select - Consulta de dados

• Insert - Inclusão de dados

• Update - Alteração de dados

• Delete - Remoção de dados

4

Page 5: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Instrução select permite realizar consultas (filtros emuma ou mais tabelas).

Sintaxe Geral :

Select [* | <campos>|distinct] From <Tabela> [where <condição>] like <mascara>

* - Pega todos os campos de uma tabela.

Distinct - Não permite repetição de registros.

From - Anuncia o nome da tabela que será

usada.

5

Page 6: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Sintaxe Geral :

Where - permite definir a condição para a consulta

like - Define que tipo de consulta será utilizada

através de máscara.

IS Null - Verifica se um campo é nulo, ou seja,

campos em branco.

Between e and - valores em um intervalo

específicado.

Order By - Ordena o registros da consulta

6

Page 7: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo de Consulta Correlacionanda

Exemplo

Select nome from funcionario where codfunc in(

select codfunc from vendas where cotas = 10)

7

Page 8: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo de Consulta Correlacionada

Exemplo

Select nome from funcionario where codfunc in(

select codfunc from vendas where cotas = 10)

8

Page 9: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Sintaxe :

Update <Nome da Tabela> set <nome-do-campo> = <Constante> [Where <Condição>]

Exemplo :

Update CadAlunos set nomeAluno = ‘Maria da Coves’ Where Codigo = ‘001’

9

Page 10: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Sintaxe :

Insert into <Nome-Tabela>[( <Nome-dos-Campos> )] Values(<Lista de Campos>)

Exemplo :

Insert Into CadAlunos (Nome,Endereco) Values( 'Marta Cunha','Rua Siqueira Campos,3' )

10

Page 11: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Sintaxe :

Delete From <Nome-da-Tabela> [Where <Condição>]

Exemplo :

Delete From CadAlunos Where nome = ‘Maria das Coves’

11

Page 12: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Sintaxe :

Select [*/All/Distinct][<Campos-Tabela>] From [<Nome-Tabela>] Where [<Condição>][Order by <campo[ASC|DESC]]

Exemplo :

Select Nome,Endereco From Cadastro Where nome = ‘Jorge Mauro’

12

Page 13: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo de order by

Select * From tabela1 order by nome

Seleciona o valor todos os campos da tabela com nome em ordem Crescente.

13

Page 14: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select endereco From tabela1 where nome is null

Seleciona os dados do campo endereco que o campo nome da tabela for igual nulo.

14

Page 15: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select Nome,Fone from Funcionario Where Nome like ‘C%’

Seleciona os dados dos campos nome e

endereço que campo nome comece com letra

“C”.

15

Page 16: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select Nome fone From tabela1 Where nome like ‘%Henrique%’

Seleciona os dados da tabela1 que o nome

tiver a string Henrique em qualquer posição.

16

Page 17: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select Nome from funcionario where salario between 1200 and 4000 and (Estado=‘SP’ or Estado=‘RJ’

Seleciona os dados do campo nome que o

salário estiverem em um intervalo entre 1200

4000 e o estado for igual a SP ou RJ.

17

Page 18: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select Nome, Estado from Tabela1 from funcionario where estado in(‘SP’,’MG’)

Seleciona os dados da tabela1 dos campos

nome e estado que estado for igual SP e MG

18

Page 19: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Funções de uma Query :

Upper - Retorna os dados do campo da tabela

letras maiúsculas.

AVG - Retorna a média dos valore de um

campo.

MIN - Retorna o menor valor do campo de

uma tabela.

MAX - Retorna o maior valor do campo de

uma tabela.

SUM - Retorna a soma dos valores de uma

determinada coluna. 19

Page 20: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select Upper(nome), fone from tabela1

Select Max(Valor) from tabela1

Select Min(Valor) from Tabela1

Select Avg(Valor) from Tabela1

Select Sum(Valor) From Tabela1

20

Page 21: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Group by - Esta cláusula exibe dados

resumidos por meio do agrupamento das

linhas que possuam os mesmos valores em

suas colunas.

Having - Esta cláusula sempre vem associada

à cláusula GROUP BY.

21

Page 22: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select avg(salario) as media, Estado from tabela1 group by Estado

Calcula a média de todos os salário da base de

dados agrupando os dados por estado contido

na tabela.

as - permite armazenar o conteúdo de uma declaração SQL em um campo que poderá ser usado no programa.

22

Page 23: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select avg(salario), Estado from tabela1 group

by Estado having avg(salario) > 5000

seleciona todos os registro da média do campo

salário e os dados do campo estado agrupando

por estado cuja a média e igual a 5000.

23

Page 24: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Select Nome from Funcionario where nome in(Select cod_func from tabela1 where adicional > 10)

Seleciona o nome dos funcionário que tenham

adicional maior que 10.

24

Page 25: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Componente Query

Para podermos usar os recursos da linguagem

de manipulação de dados usamos os

componente Query que permite trabalhar com

SQL( Structure Query Language).

Query possui todos os atributo de uma tabela

com a diferença é que podemos usar a

linguagem de manipulação de dados fazendo

filtros de seleção.25

Page 26: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Acesso com Componente ADOQuery

26

Page 27: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Usando o Componente Query

Exemplo :

Componente Propriedade Valor

ADOQuery Connection ADOConnection1

DataSource DataSet ADOQuery1

ADOQuery SQL select * from tabela

ADOQuery Active true

27

Page 28: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Instruções SQL em um componente ADOQuery.

Sintaxe :

ADOQuery1.SQL.<método>;

Determina uma ação para o componente

ADOQuery1.

28

Page 29: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Toda Instrução SQL para consulta deve ser escrita usando a estrutura abaixo.

Exemplo :

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(<Instrução Select>);

ADOQuery1.Open;

29

Page 30: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo Práticoprocedure TForm1.Button1Click(Sender: TObject);

begin

ADOQuery1.Sql.Clear;

ADOQuery1.SQL.add('Select * From cadastro');

ADOQuery1.open;

ADOQuery1.Last;

While Not ADOQuery1.Bof do

begin

ShowMessage(ADOQuery1['Nome']);

ADOQuery1.Prior;

end;

end;30

Page 31: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Atualização de Tabelas SQL.

Importante :

Para realizarmos qualquer operação de Query que

não seja um select em tempo de execução devemos

usar o método. (ExecSql).

31

Page 32: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo: apagando um códigovindo de entrada de dados

procedure TForm1.Button4Click(Sender: TObject);

var

s : String;

begin

ADOQuery1.Close;

ADOQuery1.Sql.Clear;

s := '8989';

ADOQuery1.SQL.add('Delete From cadastro Where codigo ='+chr(39)+s+chr(39));

Query1.ExecSQL;

end;

32

Page 33: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Método ParamByName()

Permite enviar parâmetros diretos em uma consulta sem a necessidade de montar a string.

Usar sempre a variável precedida de (:) dois pontos essa variável deve ser colocada no método ParamByName().

33

Page 34: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Observe o exemplo abaixo.

ADOQuery1.Close;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('Select * from CadaNomes where nome = :vnome');

ADOQuery1.Parameters.ParamByName('vnome').Value := Edit1.Text;

ADOQuery1.Open;

if not ADOQuery1.Eof then

ShowMessage('Nome Encontrado '+ADOQuery1['nome'])

else

ShowMessage('Nome não encontrado !!!');

34

Page 35: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

DBGrid - Paleta DataControls

35

Page 36: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Configuração de DBGrid usando SQL para mostrar os dados.

Objeto Propriedade Atributo

ADOQuery Dataset Query1

DBGrid Datasource DataSource1

ADOQuery SQL Select * from Tabela1

ADOQuery Active True

36

Page 37: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Modulo de dados (DataModule)

O modulo de dados permite que todos os componentes usados para manipulação de dados estejam reunidos em um mesmo ambiente fazendo com que as aplicações possam ficar mais organizadas.

37

Page 38: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Fazendo o acesso ao formulário de dados. (DataModule)

Selecione está opção.

38

Page 39: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Basta adicionar o componentes das paletas DataControl e DataAcess

39

Page 40: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Para usar o DataModule siga os passos abaixo

Uses Unit irá adicionar sua unidade DataModule ao formulário de programa.

40

Page 41: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo: Programando com DataModule

dtm.ADOTable1.Active := true;

While not Dtm.ADOTable1.Eof do

begin

ListBox1.Items.Add(dtm.ADOTable1['nome']);

dtm.ADOTable1.Next;

end;

Observe que dtm vem a ser o nome atribuído ao DataModule na propriedade Name do Objeto.

41

Page 42: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Usando Herança dos objetos

With do : Permite que seja referenciado apenas uma única vez o nome do objeto e todas as suas propriedade e métodos serão reconhecidos dentro da estrutura.

42

Page 43: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo : With do

With Dtm do begin ADOTable1.Active := true; While not ADOTable1.Eof do begin ListBox1.Items.Add(dtm.ADOTable1['nome']); ADOTable1.Next; end; end;

43

Page 44: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Exemplo With encadeados.

With Dtm do begin With ADOTable1 do begin Active := true; While not Eof do begin ListBox1.Items.Add(ADOtable1['nome']); Next; end; end; end;

44

Page 45: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Estruturas de Relatório com QuickReport (QuickRep)

Adicione o componente QuickReport em seu formulário.

45

Page 46: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Composição de um Relatório

Cria um relatório contendo uma ou mais

tabela especificadas.46

Page 47: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Criando um Relatório em Componente QRListForm

Basta adicionar os componentes de banco de dados e em seguida os campos da tabela

47

Page 48: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Componente QRDBText

Componente Propriedade Valor

QRLabel Caption <String>

QRDBText Dataset ADOTable1

QRDBText Dataset +

QRDBText Conection ADOConnection1

QRDBText DataField <Campo>

ADOTable Active true

48

Page 49: Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta de Desenvolvimento Rápido de Aplicação Material IV-Bimestre

Para Ativar o relatório em programa.

Procedure Tform1.Button1Click(......);

begin

Form1.QuickRep1.Preview; // Tela ou

Form1.QuickRep1.Print; // Impressora.

end;

49