não repetir valores em dbgrid
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
Curtidas 0
Respostas
Rjun
31/03/2006
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;
GOSTEI 0