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:
:( :?:
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
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)