PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Erro de violação de Chave #428669

13/11/2012

0

bom dia aos colegas, estou com um problema no mínimo estranho, fiz um cadastro de tipo de pagamento, neste cadastro vai receber informações de outra tabela chamada forma de pagamento em um relacionamento master/detail na tabela que vai receber a forma de pagamento (boleto, dinheiro, cartão etc..)recebe o código da tabela principal e o código da forma de pagamento, e nesta tabela crie um campo auto incremento que acredito que este que esteja dando problema..vou passar o códo e tentar comentá-lo
   if  Dts_CadTpSaida.State in [dsInsert, dsEdit]  then //aki ele verifica o status da tabela
     begin
       DM.Cds_CadItensTipVenda.Open;
       DM.Cds_CadItensTipVenda.Locate('ID_COD_ITEN',DMConsulta.Cds_Pesc_FormaPagamentoID_FORM_PAGAMENTO.Value,[]); // quando edito um registro ou insiro existe um função que que filtra pelo código do tipo de pagamento mostrando apenas os rergistros relacionados a ele..o locate acima verifica se existe um código da forma de pagamento igual ao que estou tentando inserir nesta função.

          if DM.Cds_CadItensTipVendaID_COD_ITEN.Value = DMConsulta.Cds_Pesc_FormaPagamentoID_FORM_PAGAMENTO.Value then
            begin
// se achar ele ativa o show message.

            Showmessage('Esta forma de pagameto já se encontra cadastrado para este tipo de venda');
            exit;
          end;
// se não achar ele executa o procedimento abaixo..

          DM.Cds_CadItensTipVenda.Insert;
          DM.Cds_CadItensTipVendaID_COD_ITEN.Value := DMConsulta.Cds_Pesc_FormaPagamentoID_FORM_PAGAMENTO.Value;
          DM.Cds_CadItensTipVendaID_TP_SAIDA.Value := DM.Cds_CadTipoVendaID_TP_SAIDA.Value;
          DM.Cds_CadItensTipVenda.Post;
          DM.Cds_CadItensTipVenda.ApplyUpdates(0);
          DMConsulta.Cds_Pesc_ItensTipVenda.Close; // atualiza a tabela de visualização
          DMConsulta.Cds_Pesc_ItensTipVenda.Open;
       end
      else
        begin
        Showmessage('É nescessário inserir ou editar algum registro'); aki se a primeira condição lá do topo não atender aciona esta menssagem..
      end;


não sei porque dá este problema o campo que tem o generator e a chave primária não estão neste código..
Gilmar Moraes

Gilmar Moraes

Responder

Posts

13/11/2012

Gilmar Moraes

se alguém poder ajudar a dá um otimizada no código..ouvi falar que este locate não legal usa-lo..más vai saber né ??
Responder

Gostei + 0

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

Aceitar