ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Update em tabela com dados de outras

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
vilmar.souza
Novato
Novato


Registrado: Segunda-Feira, 26 de Julho de 2010
Mensagens: 68

MensagemEnviada: Seg Jul 16, 2012 4:47 pm    Assunto: Update em tabela com dados de outras Responder com Citação

Boa tarde!

Criei um form para lançar parcelas dos contratos de venda, onde cada parcela lançada gera um lançamento no contas a receber.

Para isso estou verificando se a tabela está em ADIÇÃO ou EDIÇÃO conforme o código abaixo.

A primeira parte verifica se a tabela está em ADIÇÃO e se verdadeiro insere um novo registro de parcela e gerar o lançamento na tabela de contas a receber. Esta parte esta funcionando corretamente.


O problema é quando quero fazer algum alteração no lançamento da parcela. Então queria que fosse atualizado o lançamento no contas a receber.

O codigo deveria analizar se a tabela esta em EDIÇÃO e então ao gravar os dados da parcela, também atualizasse a tabela de contas a receber correspondente a parcela.

Quando clico no botão gravar não da nenhum erro, só que não atualiza o contas a receber.

O que pode estar errado no meu UPDATE.

Esse é o codigo que estou usando.

{primeira parte}

if datasource1.DataSet.State in [DSINSERT] then
begin
AdoGerarCtaRec.close;
AdoGerarCtaRec.SQL.Text:= 'INSERT INTO Fin_ContasReceber ( RecCnpjCpf, RecTitulo, RecParcela, '+
'RecDataTitulo, RecDocOrigem, RecDataVenc, RecValor ) '+
'SELECT Tab_Vendas.VendCliente, Tab_Vendas.VenCod, Tab_Parcelas.PARC, '+
'Tab_Vendas.VenData, Tab_Vendas.VendContrato, Tab_Parcelas.DATA, '+
'Tab_Parcelas.XVALOR FROM Tab_Vendas INNER JOIN Tab_Parcelas '+
'ON Tab_Vendas.VenCod = Tab_Parcelas.VenCod '+
'Where Tab_Vendas.VenCod =:pNrVenda and Tab_Parcelas.PARC =:pNrParc';
AdoGerarCtaRec.Parameters.ParamByName('pNrVenda').Value:=StrToInt(DBEdit1.Text);
AdoGerarCtaRec.Parameters.ParamByName('pNrParc').Value:=StrToInt(DBEdit2.Text);
AdoGerarCtaRec.execSql;
end;


{segunda parte}

if datasource1.DataSet.State in [DSEDIT] then
begin
AdoAlterarCtaRec.Close;
AdoAlterarCtaRec.SQL.Text:= 'UPDATE Fin_ContasReceber SET '+
'Fin_ContasReceber.RecCnpjCpf = Tab_Vendas.VendCliente, '+
'Fin_ContasReceber.RecTitulo = Tab_Vendas.VendCod, '+
'Fin_ContasReceber.RecParcela = Tab_Parcelas.PARC, '+
'Fin_ContasReceber.RecDataTitulo = Tab_Vendas.VenData, '+
'Fin_ContasReceber.RecDocOrigem = Tab_Vendas.VendContrato, '+
'Fin_ContasReceber.RecDataVenc = Tab_Parcelas.DATA, '+
'Fin_ContasReceber.RecValor = Tab_Parcelas.XVALOR '+
'INNER JOIN (SELECT Tab_Vendas.VendCliente, Tab_Vendas.VenCod, Tab_Parcelas.PARC, '+
'Tab_Vendas.VenData, Tab_Vendas.VendContrato, Tab_Parcelas.DATA, '+
'Tab_Parcelas.XVALOR FROM Tab_Vendas INNER JOIN Tab_Parcelas '+
'ON Tab_Vendas.VenCod = Tab_Parcelas.VenCod) '+
'Where Fin_ContasReceber.RecTitulo =:pNrVenda and Fin_ContasReceber.RecParcela =:pNrParc';
AdoAlterarCtaRec.Parameters.ParamByName('pNrVenda').Value:=StrToInt(DBEdit1.Text);
AdoAlterarCtaRec.Parameters.ParamByName('pNrParc').Value:=StrToInt(DBEdit2.Text);
AdoAlterarCtaRec.execSql;
end;



Agradeço pela ajuda!

Obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
vilmar.souza
Novato
Novato


Registrado: Segunda-Feira, 26 de Julho de 2010
Mensagens: 68

MensagemEnviada: Ter Jul 17, 2012 2:03 pm    Assunto: Responder com Citação

Opa.

Já consegui resolver.

Obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
itasouza
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 30 de Abril de 2008
Mensagens: 232

MensagemEnviada: Ter Jul 17, 2012 2:06 pm    Assunto: Re: Update em tabela com dados de outras Responder com Citação

Amigo

Quando você esta fazendo uma adição você insere um novo registro, e no caso da edição você pode apagar o registro que você adicionou e adicionar ele novamente com as alterações no lugar de fazer um update pois imagina que você tenha inserido 3 parcelas no contas a receber e na edição você vai altera apenas 1 seria mais simples você apagar tudo e inseri de novo.
Veja se lhe ajuda!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB