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
Top Related