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

Teste De Banco Dados


Guest Mzucco

Pergunta

Guest Mzucco

Oi galera, este e meu codigo para inserir novo nome!

procedure TFrmProfessor.BbtInserirClick(Sender: TObject);

Var ProxNum : Integer;

begin

TrataBotoes;

DMSist_Avaliacao.CDSProfessor.Last;

ProxNum:=DMSist_Avaliacao.CDSProfessor.FieldByName ('Cod_prof').AsInteger + 1;

DMSist_Avaliacao.CDSProfessor.Append;

DMSist_Avaliacao.CDSProfessor.fieldByName ('Cod_prof').AsInteger := ProxNum;

DbEDit2.SetFocus;

end;

Este e o meu codigo para salvar o nome novo! o problema e o seguinte, e feito o teste e ele me da a mensagem que o nome novo já existe ao clicar em confirmar, porem a mensagem aparece porque e testado inclusive o nome q se esta gravando, preciso percorrer a tabela sem testar o ultimo nome que se está inserindo, alguma sugestao?O q esta em negrito é que faz o teste mas falta algo ou tem q ser feito diferente.

Desde já agradeco a ajuda!

procedure TFrmProfessor.BbtConfirmarClick(Sender: TObject);

Begin

If DBEdit2.Text = '' then

MessageDlg('Falta preencher o campo "Nome"', mtWarning,[mbOK],0)// Else

// If DMSist_Avaliacao.CDSProfessor.Locate('Nome', DbEdit2.Text, []) then

// MessageDlg('Professor já cadastrado', mtWarning,[mbOK],0 DMSist_Avaliacao.CDSProfessor.Post;

TrataBotoes;

DMSist_Avaliacao.CDSProfessor.ApplyUpdates(-1);

end;

end;

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Amigão tenta colocar a linha do LOCATE antes do comando de inserir, ai ele verificará antes de salvar...

procedure TFrmProfessor.BbtInserirClick(Sender: TObject);
Var ProxNum : Integer;
begin
 TrataBotoes;
 DMSist_Avaliacao.CDSProfessor.Last;
 ProxNum:=DMSist_Avaliacao.CDSProfessor.FieldByName ('Cod_prof').AsInteger    + 1;
 DMSist_Avaliacao.CDSProfessor.Append;
 If DMSist_Avaliacao.CDSProfessor.Locate('Nome', DbEdit2.Text, []) then
   MessageDlg('Professor já cadastrado');
DMSist_Avaliacao.CDSProfessor.fieldByName ('Cod_prof').AsInteger := ProxNum;
DbEDit2.SetFocus;
end;

Mais ou menos isso...

E você pode tb deixar o campo nome como chave primmária no banco

Testa ai e qualquer coisa posta ai

Acho que dará certo.

falou

Link para o comentário
Compartilhar em outros sites

  • 0

veja isso, simples de fazer e eficiente!

//botao gravar, verifica se já existe o nome digitado no dbedit antes de gravar
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Nome : String;
begin
Nome := DBEdit2.Text;
with Query1 do
begin
close;
SQL.Clear;
SQL.Add('Select * from Tabela');
SQL.Add('Where Nome = :Nomep');
ParamByName('Nomep').AsString := Nome;
Open;
if Query1.IsEmpty then
begin
Table1.Post;
end
else begin
ShowMessage('O Nome já existe na tabela. A ação será cancelada!');
Table1.Cancel;
BitBtn1.Enabled := False;
end;
end;
end;

//botao que inseri abre a tabela para um novo registro
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Table1.Open;
Table1.append;
DBEdit2.SetFocus;
BitBtn1.Enabled := True;
end;

fiz o exemplo com fontes, se quiser pegar(em DELPHI 6)

http://delphiman32.z6.com.br//Teste.zip

design_vagner@hotmail.com

obs: a Tabela está em Paradox!

Editado por DELPHI-Man32
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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...