Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina Ferramenta...

Preview:

Citation preview

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

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

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

Estrutura da LinguagemSQL

• Select - Consulta de dados

• Insert - Inclusão de dados

• Update - Alteração de dados

• Delete - Remoção de dados

4

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

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

Exemplo de Consulta Correlacionanda

Exemplo

Select nome from funcionario where codfunc in(

select codfunc from vendas where cotas = 10)

7

Exemplo de Consulta Correlacionada

Exemplo

Select nome from funcionario where codfunc in(

select codfunc from vendas where cotas = 10)

8

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

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

Sintaxe :

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

Exemplo :

Delete From CadAlunos Where nome = ‘Maria das Coves’

11

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

Exemplo de order by

Select * From tabela1 order by nome

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

13

Select endereco From tabela1 where nome is null

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

14

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

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

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

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

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

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

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

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

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

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

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

Acesso com Componente ADOQuery

26

Usando o Componente Query

Exemplo :

Componente Propriedade Valor

ADOQuery Connection ADOConnection1

DataSource DataSet ADOQuery1

ADOQuery SQL select * from tabela

ADOQuery Active true

27

Instruções SQL em um componente ADOQuery.

Sintaxe :

ADOQuery1.SQL.<método>;

Determina uma ação para o componente

ADOQuery1.

28

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

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

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

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

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

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

DBGrid - Paleta DataControls

35

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

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

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

Selecione está opção.

38

Basta adicionar o componentes das paletas DataControl e DataAcess

39

Para usar o DataModule siga os passos abaixo

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

40

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

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

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

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

Estruturas de Relatório com QuickReport (QuickRep)

Adicione o componente QuickReport em seu formulário.

45

Composição de um Relatório

Cria um relatório contendo uma ou mais

tabela especificadas.46

Criando um Relatório em Componente QRListForm

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

47

Componente QRDBText

Componente Propriedade Valor

QRLabel Caption <String>

QRDBText Dataset ADOTable1

QRDBText Dataset +

QRDBText Conection ADOConnection1

QRDBText DataField <Campo>

ADOTable Active true

48

Para Ativar o relatório em programa.

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

begin

Form1.QuickRep1.Preview; // Tela ou

Form1.QuickRep1.Print; // Impressora.

end;

49

Recommended