Ir para conteúdo
Fórum Script Brasil
  • 0

verificar se o registro existe no banco


danielrgoes

Pergunta

Boa Tarde pessoal

estou com uma duvida ate meio tonta eu acho

eu utilizo o procedimento de inserção que a maioria usa eu acho

um botao com - modulo.cds_tabela.append

e um botao pra salvar - modulo.cds_tabela.post

ate ai td bem

mais eu gostaria de antes dar o post verificar se o registro que o usuario esta inserindo já existe no banco

para isso usaria o famos select correto

modulo.cds_tabela.close;

modulo.sql_tabela.sql.clear;

modulo.sql_tabela.sql.Add('SELECT * FROM TABELA ');

modulo.sql_tabela.sql.Add('WHERE NOME = ' + nome.Text);

modulo.cds_tabela.Open();

se o modulo.cds_tabela.recordcont for = 0 deixa incluir se não não deixa

beleza ate ai td bem

mais o problema é que quando eu entro modo append eu não posso dar o select

porque se não sai do modo ai quando vo dar o post da erro e fala que eu não to inserindo

alguém tem alguma idea?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
mais o problema é que quando eu entro modo append eu não posso dar o select

porque se não sai do modo ai quando vo dar o post da erro e fala que eu não to inserindo

modulo.cds_tabela.Cancel;

abraço

acho que me expresei mal jhonas

eu quero continuar inserindo só avisa o usuario que não pode inserir aquela informaçao

Link para o comentário
Compartilhar em outros sites

  • 0
mais eu gostaria de antes dar o post verificar se o registro que o usuario esta inserindo já existe no banco

para isso usaria o famos select correto

modulo.cds_tabela.close;

modulo.sql_tabela.sql.clear;

modulo.sql_tabela.sql.Add('SELECT * FROM TABELA ');

modulo.sql_tabela.sql.Add('WHERE NOME = ' + nome.Text);

modulo.cds_tabela.Open();

se o modulo.cds_tabela.recordcont for = 0 deixa incluir se não não deixa

beleza ate ai td bem

mais o problema é que quando eu entro modo append eu não posso dar o select

porque se não sai do modo ai quando vo dar o post da erro e fala que eu não to inserindo

Uma vez que voce esta inserindo um registro, a sua tabela esta em modo de edição ... se antes de dar o post voce quer verificar se o registro já existe, então faça o teste na saida do Edit usando uma cópia do seu select em outro componente

exemplo: No Evento OnExit do Edit ou outro que esteja usando coloque

procedure TForm1.Edit1Exit(Sender: TObject);
begin
     if modulo.cds_tabelaX.recordcont = 0 then
         begin
            // rotina para salvar o registro]
             modulo.cds_tabela.Post;
             modulo.cds_tabela.ApplyUpdates(-1);
         end;
     else
         begin
              showmessage('Registro já existente !'; 
              modulo.cds_tabela.Cancel;
              exit;
         end;
end;

OBS: Crie um outro grupo de componentes ( modulo.cds_tabelaX ) somente para testar o registro na hora da inserção

ou se preferir use um campo indexado que, ai sua tabela não aceitará registros duplicados

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...