Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maquinavirtual

nao deixar duplicar registro delphi

Recommended Posts

Estou usando delphi 7 e firebird e componentes da paleta Interbase.

Criei uma query (ibQuery) para realizar uma pesquisa para nao deixar registrar dois registros com o mesmo nome

por exemplo: Cadastro o usuario fulano salvo e depois tento salvar o mesmo fulano quero que neste momento ele execute a mensagem que o registro ja existe.

Esta correto desta maneira?

 

A query esta assim:

begin
        DTM.IBQRYregisRepetido.Close;
        DTM.IBQRYregisRepetido.ParamByName('PRMregisrepetido').AsString:=''+ DTM.IBTABcadastroNOMECOMPLETO.Text +'%'; //''+ dbEditNomeCompleto.Text +'%';
        DTM.IBQRYregisRepetido.Open;
        DTM.IBTABcadastroNOMECOMPLETO.Clear;
        if (DTM.IBQRYregisRepetido.RecordCount >=1) then
       else //se resultado da pesquisa for maior ou igual a 1
        begin
          messagebeep(16);
          messagebox(FormCadastro.Handle,'O registro que esta sendo'#13'inserido ja esta cadastrado!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
          abort;
          DTM.IBTABcadastro.Cancel;
        end;

 

if Button = NbPost then //botao salvar
   begin
     //menus
     MainMenuSair.Enabled:=true; //MainMenuSair desabilitado
     MainMenuPesquisa.Enabled:=true; //MainMenuConsulta desabilitado
     //PopupMenuSair.Enabled:=false; //PopupMenuSair desabilitado
     //PopupMenuConsulta.Enabled:=false; //PopupMenuConsulta desabilitado

     //verifica campo em branco
     //e notifica usuario
     if dbeditUF.Text = '' then
      begin
        messagebeep(16);
        messagebox(FormCadastro.Handle,'Realize a pesquisa pelo "Cep",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
        abort;
      end
     else
      if dbeditCIDADE.Text = '' then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Realize a pesquisa pelo "Cep",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
       end
     else
      if dbeditBAIRRO.Text = '' then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Realize a pesquisa pelo "Cep",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
       end
     else
      if DBCBselecCLASSE.Text = '' then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Selecione a "Classe" do registro,'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
       end
     else
      if DBEditNOMECOMPLETO.Text = '' then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Preencha o campo "Nome Completo",'#13'campo esta em branco!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
       end
     else
      if (Length (dbEditcep.Text) < 8) or (Length (dbEditcep.Text) > 8) then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Preencha o campo "Cep" corretamente!'#13'Formato: 00.000-000. Digite'#13'somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
         dbeditCep.SetFocus;
       end
     else
      if Length (dbEditTelRes.Text) < 14 then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Preencha o campo "Telefone Residencial" corretamente!'#13'Formato: (00)0000-0000.'#13'Digite somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
         dbeditCep.SetFocus;
       end
     else
      if Length (dbEditTelCel.Text) < 14 then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Preencha o campo "Telefone Celular" corretamente!'#13'Formato: (00)0000-0000.'#13'Digite somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
         dbeditCep.SetFocus;
       end
     else
      if Length (dbEditTelCom.Text) < 14 then
       begin
         messagebeep(16);
         messagebox(FormCadastro.Handle,'Preencha o campo "Telefone Comercial" corretamente!'#13'Formato: (00)0000-0000.'#13'Digite somente números.','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
         abort;
         dbeditCep.SetFocus;
       end
     else
      begin
        DTM.IBQRYregisRepetido.Close;
        DTM.IBQRYregisRepetido.ParamByName('PRMregisrepetido').AsString:=''+ DTM.IBTABcadastroNOMECOMPLETO.Text +'%'; //''+ dbEditNomeCompleto.Text +'%';
        DTM.IBQRYregisRepetido.Open;
        DTM.IBTABcadastroNOMECOMPLETO.Clear;
        if (DTM.IBQRYregisRepetido.RecordCount >=1) then
       else //se resultado da pesquisa for maior ou igual a 1
        begin
          messagebeep(16);
          messagebox(FormCadastro.Handle,'O registro que esta sendo'#13'inserido ja esta cadastrado!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
          abort;
          DTM.IBTABcadastro.Cancel;
        end;
      end
   else - aqui ele nao compila.
    begin
      messagebeep(16);
      messagebox(FormCadastro.Handle,'O registro foi'#13'salvo com sucesso!!','AgenTel - Salvar',mb_Ok+MB_ICONQUESTION);
      //abort;
    end;


   end;

Aguardo resposta, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega um conselho você não acha melhor tratar alguns erros desse seu código no evento Keypress ou OnExit dos Componentes, assim as rotinas do botão salvar ficão mais leves !!!

 

Desse modo fk melhor até para acompanhar a abertura e o fechamento das condições IF, ELSE E END.

 

Outra coisa para desabilitar e habilitar os componentes do form, você pode usar a propriedade State do seu (Componente de Conexão).

 

Claro é só um conselho !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.