GARANTIR DESCONTO

Fórum Obter codigo do Funcionario/Cliente e inserir #564440

21/10/2016

0

Eu gostaria de inserir na minha tabela TELEFONES o codigo do FUNCIONARIO que for cadastrado, ou o codigo do CLIENTE quando fosse cadastrado, eu ate tentei criar duas trigger, ambas em ON TELEFONES mas ai e um problema, porque quando eu vou inserir no CLIENTE, eu tambem coloquei pra inserir o TELEFONE na tabela TELEFONES e junto com ela, obter o codigo do novo CLIENTE e gravando os mesmos na tabela TELEFONES..
As trigger estao assim

para inserir o codigo e o telefone do cliente
create trigger obterCodClienteTelefone on TELEFONES
after insert
as
begin
	DECLARE @codCliente                  int,
		       @numero		varchar(30)
	
	set @codCliente = ( select top 1 codCliente FROM CLIENTES order by codCliente desc )
	select @numero = numeroTel from inserted
	update TELEFONES set codCliente=@codCliente where numeroTel = @numero		
end


e para inserir o codigo do funcionario e o telefone
create trigger obterCodFuncTelefone on TELEFONES
after insert
as
begin
	DECLARE @codFunc                  int,
		       @numero		varchar(30)
	
	set @codFunc = ( select top 1 codFunc FROM FUNCIONARIOS order by codFunc desc )
	select @numero = numeroTel from inserted
	update TELEFONES set codFunc=@codFunc where numeroTel = @numero		
end


Pois e, isso e um problema porque quando inserir o FUNCIONARIO, o codigo do cliente vem junto... alguem pode me ajudar em uma logica pra isso ?
Leandro

Leandro

Responder

Posts

21/10/2016

Luiz Freitas

Boa noite Leandro, tudo bem?

Você não precisa criar trigger's pra fazer o que você precisa ai, dá uma olhada na vídeo aula do Alan Glei, no blog dele:
http://alan-gomes.blogspot.com.br/2013/04/firedac-cadastro-mestredetalhe.html


Ele mostra como trabalhar com relação mestre detalhe... o exemplo é com duas tabelas, mas poderiam ser várias, o princípio é o mesmo; o único detalhe é que a vídeo aula foi gravada utilizando a versão XE3 do Delphi, e nessa versão os componentes do FireDAC ainda se chamavam, por exemplo, a query era TADQuery, ou seja, o prefixo das classes ainda era AD, nas versões mais recentes, a query por exemplo se chama TFDQuery, o prefixo agora é FD.

Qualquer dúvida entra em contato...
t++
Responder

Gostei + 0

21/10/2016

Luiz Freitas

deu um bug aqui e o endereço do vídeo não saiu no post original... então segue:

http://alan-gomes.blogspot.com.br/2013/04/firedac-cadastro-mestredetalhe.html
Responder

Gostei + 0

22/10/2016

Leandro

Nao da pra fazer sem ter que usar o TFDQuery ?
Meu sistema esta todo constituido por TADOQuery's e nao ficaria muito compreensivel se eu mesclasse
Responder

Gostei + 0

22/10/2016

Luiz Freitas

Leandro,

Dei uma olhada e não encontrei (não quero dizer que não existe, somente que eu não encontrei) nada parecido utilizando TADOQuery, mas com TADOTable sim..

https://www.youtube.com/watch?v=8Y4OcM1eq1Q

Uma pergunta... você está dando manutenção em um sistema já existente? Porque os componentes da paleta FireDAC são muito mais poderosos que os da paleta ADO... te dão muito mais opções e recursos.

De qualquer forma, dá uma olhada no vídeo, talvez te ajude.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar