Olá pessoal nesta Quick vamos continuar a ver conceitos e criação de Views
O que é View?
São objetos que pertencem a um banco de dados, definida por declarações de Selects, ou seja, view é uma visão de uma ou mais tabelas, com todos ou alguns campos de determinadas tabelas.
Vantagens de se criar View
• Uma view pode ser utilizada, por exemplo, para retornar um valor baseado em um identificador de registro.
• Aumentar a segurança dos mesmos e definir políticas de acesso em nível de tabela e coluna. podem ser configurados para mostrar colunas diferentes para diferentes usuários do banco de dados.
• Pode ser utilizada com um conjunto de tabelas que podem ser unidas a outros conjuntos de tabelas com a utilização de join’s ou union.
Criando View
Vamos enfim criar a nossa primeira view, para isso selecione no Database Explorer a opção View e tecle Ctrl + N.
Nesta View iremos selecionar todos os pedidos de acordo com a data do dia de hoje, ou seja, queremos saber quais são os pedidos do dia de hoje. Coloque a seguinte instrução na tela que se abre:
CREATE VIEW DATAPEDIDO(
IDPEDIDO,
IDCLIENTE,
VALOR,
DATA)
AS
select IDPEDIDO, IDCLIENTE, VALOR, data FROM PEDIDO
Where data = current_date;
Pressione a tecla F9 clique em commit, logo depois escolha a opção Data e perceba que ele selecionou todos os pedidos com a data de hoje.
Ou seja, ele criou uma View da tabela pedido só com estes dados, o Delphi entendi uma View como um DataSet, assim podemos pegar todos estes dados.
Lendo uma View no Delphi
Crie uma nova Aplicação no Delphi e salve-a na nossa pasta SA, Adicione no nosso formulário um SqlConnection da paleta DBExpress, crie uma nova conexão,eu estou utilizando o Delphi 2010, já possui um drive nativo para o Firebird. Na propriedade ConnectionName coloque o nome da conexão.
Adicione então um SqlDataSet da paleta DBExpress e mude a propriedade SqlConnection para
o nome do componente SqlConnection, colocado anteriormente. Dê um clique na propriedade CommandText e abrirá a seguinte tela:
Podemos perceber que a nossa view DATAPEDIDO, está lá com as nossas tabelas. Coloque a seguinte instrução Sql: Select * from DATAPEDIDO e dê OK.
Adicione em nosso formulário um DataSetProvider da Paleta Data Access e mude a propriedade DataSet parta SqldataSet1, depois coloque um ClientDataSet da paleta Data Access também e mude a propriedade ProviderName para DataSetProvider1, coloque enfim um DataSource da paleta Data Access e mude a propriedade DataSet para ClientDataSet1 e um DBGrid e mude a propriedade DataSource para DataSource1.
Selecione o componente ClientDataSet e mude a propriedade Active dele para True e execute
a aplicação e veja como ficou nosso DBGrid na figura a seguir:
Mas seria interessante se pudéssemos saber o nome do cliente e não o código, retorne então
no IbExpert e vamos fazer essa alteração.
Uma view não pode ser alterada no Firebird, por isso recorte a instrução SQL e feche a view logo depois com a view DATAPEDIDO selecionada tecle Ctrl + Del para deletarmos a mesma, logo em seguida tecle Ctrl + N para criarmos uma nova view e coloque a instrução Sql:
CREATE VIEW DATAPEDIDO(
NOME,
IDPEDIDO,
DATA,
VALOR)
AS
select
CLI.nome,
ped.idpedido,
ped.data,
ped.valor
from pedido ped Inner Join cliente cli on cli.idcliente = ped.idcliente
Where DATA = current_date;
Ok, fizemos um join para buscarmos o valor do campo nome na tabela de cliente. Compile essa
view e veja como ele se demonstra no Delphi.
Vou ficando por aqui, veja na próxima Quick veremos o Query Builder.
Um abraço
Rubens Antunes