Ajuda - Busca - Membros - Calendário
Versão Completa: (Resolvido) Problema ao Salvar
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Geomar Canjundo
Ola Pessoal,
Estou desenvolvendo um sistema de Gestao de Oficinas e na tabela cliente, defini como o chaves o codigo e o Identificacao do cliente.

Acontece que ao salvar gera o seguinte erro:

Se a tabela estiver em modo de Insercao o processo é pacifico salva tranquilo, se a identificacao for repetida ela informa.

O problema esta a edicao de dados, eu quero que o sistema verifique se a identificacao foi alterada e caso tenha sido alterada impedir a edicao de dados.

o codigo do Metodo esta abaixo

CODE
procedure SalvarClientes;
begin
if FormClientes.EditIdentificacao.Text='' then
     begin
      ShowMessage('Digite a Identificacao do Cliente');
      FormClientes.EditIdentificacao.SetFocus;
      Exit;
     end
     else
      begin
            With ModuloDados.QryAuxiliar do
              begin
               Close;
               Sql.Clear;
               SQl.Text:='Select * from clientes where identificacao="'+
               ModuloDados.QryClientesIDENTIFICACAO.Text+'"';
               Open;
               if IsEmpty then
               else
                 begin
                  if ModuloDados.DsClientes.state in [dsInsert] then
                   begin
                   ShowMessage('A Identificação já existe');
                   FormClientes.EditIdentificacao.SetFocus;
                   Exit;
                   end
                   else
                   ???????
                 end;
              end;

           end;
     end;
If Mensagem('Deseja Salvar o Cadastro?')= Idyes then
        begin
        FormClientes.BarraEstado.Panels[0].Text:= 'A Salvar Registo...';
        if ModuloDados.DsClientes.state in [dsInsert] then
        begin
        ModuloDados.QryClientes.Post;
        ModuloDados.QryClientes.Last;
        ShowMessage('Cliente Cadastrado com Sucesso!!!');
        FormClientes.BarraEstado.Panels[0].Text:= 'Dados do Cliente Adicionados ao Sistema...';
        end
        else
         begin
         ModuloDados.QryClientes.UpdateRecord;
         ModuloDados.QryClientes.Last;
         ShowMessage('Cliente Alterados com Sucesso!!!');
         FormClientes.BarraEstado.Panels[0].Text:= 'Dados do Cliente Adicionado ao Sistema...';
         end;
         FormClientes.ButNovo.Enabled:=True;
         FormClientes.ButFechar.Enabled:=True;
        end;
end;

alguém pode me ajudar?


OBS: Procure usar as tags de identação de código para facilitar a leitura
Jhonas
CODE
With ModuloDados.QryAuxiliar do
  begin
     Close;
     Sql.Clear;
     SQl.Text:='Select * from clientes where identificacao="'+
     ModuloDados.QryClientesIDENTIFICACAO.Text+'"';
     Open;
     if IsEmpty then
     else
     begin
       if ModuloDados.DsClientes.state in [dsInsert] then
          begin
             ShowMessage('A Identificação já existe');
             FormClientes.EditIdentificacao.SetFocus;
             Close; ///////  <-----
             Exit;
          end
       else
          ???????
       end;
  end;

end;


OBS: se o registro foi encontrado , dá a mensagem, fecha a query e sai

abraço
Geomar Canjundo
Ola Jhonas,
Valeu, sua ajuda foi de grande importancia, funcionou direitinho,

Obrigado.

Abracos

Geomar.
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.