 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
vilmar.souza Novato

Registrado: Segunda-Feira, 26 de Julho de 2010 Mensagens: 68
|
Enviada: Seg Jul 16, 2012 4:47 pm Assunto: Update em tabela com dados de outras |
|
|
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 |
|
 |
vilmar.souza Novato

Registrado: Segunda-Feira, 26 de Julho de 2010 Mensagens: 68
|
Enviada: Ter Jul 17, 2012 2:03 pm Assunto: |
|
|
Opa.
Já consegui resolver.
Obrigado. |
|
| Voltar ao Topo |
|
 |
itasouza Aprendiz

Registrado: Quarta-Feira, 30 de Abril de 2008 Mensagens: 232
|
Enviada: Ter Jul 17, 2012 2:06 pm Assunto: Re: Update em tabela com dados de outras |
|
|
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|