Fórum select parcialmente com erro. #390480
13/11/2010
0
begin
Close;
SQL.Clear;
SQL.ADD('SELECT CODIGO From DISCIPLINA Where Nome_disciplina = :Dados');
ParamByName('dados').asString:= dbEdtDisciplina.Text;
Open;
if (not isempty) then
begin
if (FieldByName('CODIGO').AsString <> IBQryDisciplinaCODIGO.AsString) then
begin
Application.MessageBox('Disciplina já cadastrada! verifique e tente novamente', 'Atenção', mb_iconinformation + mb_ok);
begin
BtnCancelarDisciplina.Click;
exit;
end;
end;
end;
end; DmDados.IBQryDisciplina.Post; ----------------------------------------------------- estes são os campos da tabela disciplina: ID_CODIGO
NOME_DISCIPLINA
CODIGO_TURMA
ESCOLA (chave estrangeira)
Agradeço antecipadamente a atenção. Osmar.
Osmar
Curtir tópico
+ 0Posts
15/11/2010
Flavia Santos
begin
Close;
SQL.Clear;
SQL.ADD('SELECT CODIGO From DISCIPLINA Where Nome_disciplina = :Dados');
ParamByName('dados').asString:= dbEdtDisciplina.Text;
Open;
if (not isempty) then
begin
if (FieldByName('CODIGO').AsString <> IBQryDisciplinaCODIGO.AsString) then
begin
Application.MessageBox('Disciplina já cadastrada! verifique e tente novamente', 'Atenção', mb_iconinformation + mb_ok);
begin
BtnCancelarDisciplina.Click;
exit;
end;
end;
end;
end; DmDados.IBQryDisciplina.Post; ----------------------------------------------------- estes são os campos da tabela disciplina: ID_CODIGO
NOME_DISCIPLINA
CODIGO_TURMA
ESCOLA (chave estrangeira)
Agradeço antecipadamente a atenção. Osmar.
Amigo,
Nesta linha SQL.ADD('SELECT CODIGO From DISCIPLINA Where Nome_disciplina = :Dados');
ParamByName('dados').asString:= dbEdtDisciplina.Text; seu select está procurando a disciplina cadastrada independente da turma.
Acho que o select ficaria melhor assim:
SQL>ADD('Select CODIGO from DISCIPLINA where Nome_Disciplina = :Dados and Turma = :Turma');
ParamByName('Dados').asString := dbEdtDisciplina.Text;
ParamByName('Turma').asString := dbEdtTurma.Text;
Gostei + 0
15/11/2010
Osmar
begin
Close;
SQL.Clear;
SQL.ADD('Select CODIGO from DISCIPLINA where Nome_Disciplina = :Dados and codigo_Turma = :turma');
ParamByName('dados').asString:= dbEdtDisciplina.Text;
ParamByName('turma').AsInteger := DmDados.IBQryDisciplinaCODIGO_TURMA.AsInteger;
Open;
if (not isempty) then
begin
if (FieldByName('CODIGO').AsString <> IBQryDisciplinaCODIGO.AsString) then
begin
Application.MessageBox('Disciplina já cadastrada! verifique e tente novamente', 'Atenção', mb_iconinformation + mb_ok);
begin
BtnCancelarDisciplina.Click;
exit;
end;
end;
end;
end; DmDados.IBQryDisciplina.Post;
1 - (adapitei esta linha porque não tenho o edit turma no form) ParamByName('turma').AsInteger := DmDados.IBQryDisciplinaCODIGO_TURMA.AsInteger;
2 - (observe que mudei no final do select TURMA por NOME_DISCIPLINA SQL.ADD('Select CODIGO from DISCIPLINA where Nome_Disciplina = :Dados and codigo_Turma = :turma');
Mais uma vez agradeço a atenção, pois mim ajutou bastante para resolver o problema. Osmar.
Gostei + 0
15/11/2010
Osmar
begin
Close;
SQL.Clear;
SQL.ADD('Select CODIGO from DISCIPLINA where Nome_Disciplina = :Dados and codigo_Turma = :turma');
ParamByName('dados').asString:= dbEdtDisciplina.Text;
ParamByName('turma').AsInteger := DmDados.IBQryDisciplinaCODIGO_TURMA.AsInteger;
Open;
if (not isempty) then
begin
if (FieldByName('CODIGO').AsString <> IBQryDisciplinaCODIGO.AsString) then
begin
Application.MessageBox('Disciplina já cadastrada! verifique e tente novamente', 'Atenção', mb_iconinformation + mb_ok);
begin
BtnCancelarDisciplina.Click;
exit;
end;
end;
end;
end; DmDados.IBQryDisciplina.Post;
1 - (adapitei esta linha porque não tenho o edit turma no form) ParamByName('turma').AsInteger := DmDados.IBQryDisciplinaCODIGO_TURMA.AsInteger;
2 - (observe que mudei no final do select TURMA por NOME_DISCIPLINA SQL.ADD('Select CODIGO from DISCIPLINA where Nome_Disciplina = :Dados and codigo_Turma = :turma');
Mais uma vez agradeço a atenção, pois mim ajudou bastante a resolver o problema. Osmar.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)