não repetir valores em dbgrid

31/03/2006

0

bom di amigos!
Estou com o seguinte problema!
Tenho uma dbgrid que está sendo preenchida por valore que estão em uma DBLookCombobox, onde carrego as disciplinas! No entanto não posso deixar gravar a mesma disciplina duas vezes! Como posso fazer esse teste!


codigo do botao incluir que pega os valores da query e coloca na dbgrid:
procedure Tfrm_lanca_nota.btnIncluirClick(Sender: TObject);
begin
QHistorico.Close;
QHistorico.SQL.Clear;
QHistorico.SQL.Add(´Select * from san_tbl_historico´);
QHistorico.SQL.Add(´Where id_aluno like ´´¬´+Edit1.Text+´¬´´ and disciplina like ´´¬´+DBLDisciplina.Text+´¬´´´);
QHistorico.Open;
if QHistorico.RecordCount <> 0 then
begin
//aqui não pode inserir a mesma disciplina.
QHistorico.Close;
QHistorico.Open;
ShowMessage(´materia ja existe!´);
DBLDisciplina.SetFocus;
exit;
end;
QHistorico.Open;
QHistorico.Append;

QHistorico[´id_aluno´] := QAlunomatricula.Text;
QHistorico[´disciplina´]:= DBLDisciplina.Text;
QHistorico[´curso´] := DBEdit4.text;
QHistorico[´1bim´] := 0;
QHistorico[´2bim´] := 0;
QHistorico[´3bim´] := 0;
QHistorico[´4bim´] := 0;
QHistorico[´media_final´] := 0;
QHistorico[´falta1´] := 0;
QHistorico[´falta2´] := 0;
QHistorico[´falta3´] := 0;
QHistorico[´falta4´] := 0;
QHistorico[´falta_final´] := 0;
QHistorico[´ch´] := 0;
end;
:( :?:


Sansoftware

Sansoftware

Responder

Posts

31/03/2006

Rjun

Fiz umas mudanças no seu código. Que banco de dados você está usando? Qual a tecnologia de acesso?

begin
  QHistorico.SQL.Clear;

  {
    Esse trecho poderia estar dentro do seu componente e não em
    linha de código
  }
  QHistorico.SQL.Add(´SELECT * FROM San_Tbl_Historico ´);
  QHistorico.SQL.Add(´WHERE Id_Aluno = :IdAluno AND Disciplina = :Disciplina´);

  { Utilizar parâmetro é uma opção inteligente }
  QHistorico.ParamByName(´IdAluno´).Value := Edit1.Text;
  QHistorico.ParamByName(´Disciplina´).Value := DBLDisciplina.Text;

  QHistorico.Open;
  try
    if (QHistorico.RecordCount = 0) then
    begin
      QHistorico[´id_aluno´] := QAlunomatricula.Text;
      QHistorico[´disciplina´]:= DBLDisciplina.Text;
      QHistorico[´curso´] := DBEdit4.text;
      QHistorico[´1bim´] := 0;
      QHistorico[´2bim´] := 0;
      QHistorico[´3bim´] := 0;
      QHistorico[´4bim´] := 0;
      QHistorico[´media_final´] := 0;
      QHistorico[´falta1´] := 0;
      QHistorico[´falta2´] := 0;
      QHistorico[´falta3´] := 0;
      QHistorico[´falta4´] := 0;
      QHistorico[´falta_final´] := 0;
      QHistorico[´ch´] := 0;
    end;
  finally
    { Feche a query depois de sua utilização }
    { Não faz sentido deixá-la aberta }
    QHistorico.Close;
  end;
end;



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar