DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Video: Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim-Parte 38-Atualizando o saldo de estoque via Trigger

Nesta vídeo aula, veremos como atualizar o saldo de estoque de nossa aplicação via Trigger.

Título:

Tempo: 18:55 min

Mini Resumo: Olhe para a sua aplicação e tente localizar as rotinas que são executadas sem a intervenção direta do usuário. A geração de logs, atualização de estoque, geração de lançamentos a pagar quando se cadastra uma nota de entrada, etc. Geralmente colocamos esta rotina na aplicação e pecamos em dois pontos. Primeiro quando temos que alterar as regras destas rotinas temos que recompilar a aplicação e segundo na carga que colocamos sobre a aplicação. Para isso é que temos as triggers nos bancos de dados. Claro que isso tem seu lado positivo e o negativo também mas isso eu deixarei você decidir.

Metodologia de desenvolvimento do exemplo: Sabemos que todas as vezes em que vendemos um produto o estoque do mesmo tem que ser decrementado na mesma quantidade em que foi vendido. Para não onerar a aplicação criaremos uma trigger na tabela VENDAITEM que faça o trabalho pesado para nós.Aproveitando eu mostro também as vantagens em se utilizar View e crio uma para exemplificar o assunto.

Tecnologias utilizadas: RadStudio 2007, FireBird2.0, DBX4.

Exemplos construídos: Atualização do Estoque via Trigger.

Palavras chaves: Delphi2007, DBX4, Trigger, IBExpert, View.





    2 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Charles Holmes Jacome
Parabéns pelo curso! conteúdo e didatica excelentes !!

estou com uma duvida de como fazer com DBexpress.
no SQLDataSet1.CommandText eu tenho uma query do tipo:

select
  ALUNOS.MATRICULA, detalhe.sequencial,
  .........
from ALUNOS
join Detalhe on (detalhe.MATRICULA = ALUNOS.MATRICULA)
join ......
where
  .....

Agora o que eu gostaria de saber é onde ficaria o comando para fazer o delete
que seria só na tabela "Detalhe" :
DELETE FROM Detalhe WHERE sequencial = :OLD_sequencial

seria como a exemplo de outros componentes que podem usar um TUpdateSQL...

obrigado !

[há +1 ano] - Responder

 

[autor] Rodrigo Carreiro Mourão
Automaticamente isso noa é possivel sem configuração dos providers flag. Quando vc dar um update ou detele num CDS ele invoca metodo do DataSetProvider para poder gerar a instruçao sql para executar no Banco. Como seu select tem um Join em duas tabelas vc deverá configurar quais campos do seu select serão atualizados e isso é feito através dos providers flags.

Fora isso tem que ir no DataSet Provider para informar qual a tabela que vai ser atualizada.

Enfim, isso é trabalhoso, no seu caso é melhor fazer um Master Detail de Alunos com Detalhe. Eu abordei Master Detail neste Curso. Da uma olhada lá.

Abs!!


[há +1 ano] - Responder
 



Publicidade
Curso Online
Autor
Rodrigo Carreiro Mourão

Consultor de TI especializado em Orientação e Objetos, Design Patterns e Gestão de Projetos. Instrutor certificado pela Borland e Delphi Product Certified. É sócio da RM Factory Soluções em TI e da Szeryng Traduções e Informática. Atua como Supervisor de TI do Grupo Editorial Nacional e é instrutor ...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
7   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03