Fórum Como fazer esse Update? #612738
07/09/2020
0
Tenho 2 combobox: No primeiro combobox supondo que o usuário selecione (1º BIMESTRE') e no segundo Combobox selecione (Prova 1ª Nota), lembrando que no segundo combobox ele tem a opção de escolher até 10 campos. Quero da um update no CAMPO 1ª NOTA, inserindo 0 (zero) em todo campo.
begin
Close;
SQL.Clear;
SQL.ADD('Update Notas = WHERE ESCOLA = :ESCOLA and codigo_turma=:turma');
ParamByName('escola').AsInteger := IBQryAlunoTurmaESCOLA.AsInteger;
ParamByName('turma').AsInteger := IBQryAlunoTurmaCODIGO_TURMA.AsInteger;
ExecSQL;
DmDados.IBTransaction.CommitRetaining;
end;
Osmar
Curtir tópico
+ 0Posts
08/09/2020
Emerson Nascimento
faça algo assim:
var
sInstrucaoSQL: string;
begin
// 'lembrando que no segundo combobox ele tem a opção de escolher até 10 campos'
// escolher até 10 campos ou escolher 1 entre 10 campos ?
// vou supor que a tabela tenha a seguinte estrutura:
// escola turma aluno bimestre nota_1 nota_2 nota_3 ...
sInstrucaoSQL := 'update NOTAS set nota_'+IntToStr(combobox_nota.ItemIndex+1)+' = 0 '+
'where bimestre = :bimestre and escola = :escola and codigo_turma = :turma';
Close;
SQL.Text := sInstrucaoSQL;
ParamByName('bimestre').AsInteger := combobox_bimestre.ItemIndex + 1;
ParamByName('escola').AsInteger := IBQryAlunoTurmaESCOLA.AsInteger;
ParamByName('turma').AsInteger := IBQryAlunoTurmaCODIGO_TURMA.AsInteger;
ExecSQL;
DmDados.IBTransaction.CommitRetaining;
end;
Gostei + 0
08/09/2020
Osmar
COMBOBOX CAMPO
Trabalho Individual 1ª Nota Trabalho_Individual_1
Trabalho Individual 2ª Nota Trabalho_Individual_2
Prova 1ª Nota Prova_1
Prova 2ª Nota Prova_2
Observação 1ª Nota Observacao_1
Observação 2ª Nota Observacao_2
Trabalho em Grupo 1ª Nota Trabalho_Grupo_1
Trabalho em Grupo 2ª Nota Trabalho_Grupo_2
Seminário 1ª Nota Seminario_1
Seminário 2ª Nota Seminario_2
O objetivo é o seguinte se o usuário selecionou no COMBOBOX a opção ( Prova 2ª Nota ), quero dar um update no campo Prova_2, inserindo zero em todos os alunos do campo. Espero que entenda.
Gostei + 0
08/09/2020
Osmar
Trabalho Individual 1ª Nota Trabalho_Individual_1
Trabalho Individual 2ª Nota Trabalho_Individual_2
Prova 1ª Nota Prova_1
Prova 2ª Nota Prova_2
Observação 1ª Nota Observacao_1
Observação 2ª Nota Observacao_2
Trabalho em Grupo 1ª Nota Trabalho_Grupo_1
Trabalho em Grupo 2ª Nota Trabalho_Grupo_2
Seminário 1ª Nota Seminario_1
Seminário 2ª Nota Seminario_2
O objetivo é o seguinte se o usuário selecionou no COMBOBOX a opção ( Prova 2ª Nota ), quero dar um update no campo Prova_2, inserindo zero em todos os alunos do campo. Espero que entenda.
Gostei + 0
08/09/2020
Emerson Nascimento
var
sInstrucaoSQL: string;
sCampo: string;
begin
case combobox_campo.ItemIndex of
0: sCampo := 'Trabalho_Individual_1';
1: sCampo := 'Trabalho_Individual_2';
2: sCampo := 'Prova_1';
3: sCampo := 'Prova_2';
4: sCampo := 'Observacao_1';
5: sCampo := 'Observacao_2';
6: sCampo := 'Trabalho_Grupo_1';
7: sCampo := 'Trabalho_Grupo_2';
8: sCampo := 'Seminario_1';
else
sCampo := 'Seminario_2';
end;
sInstrucaoSQL := 'update NOTAS set '+sCampo+' = 0 '+
'where bimestre = :bimestre and escola = :escola and codigo_turma = :turma';
with Dataset do
begin
Close;
SQL.Text := sInstrucaoSQL;
ParamByName('bimestre').AsInteger := combobox_bimestre.ItemIndex + 1; // aqui você precisa resolver como aponta para o bimestre correto
ParamByName('escola').AsInteger := IBQryAlunoTurmaESCOLA.AsInteger;
ParamByName('turma').AsInteger := IBQryAlunoTurmaCODIGO_TURMA.AsInteger;
ExecSQL;
DmDados.IBTransaction.CommitRetaining;
end;
end;Gostei + 0
08/09/2020
Osmar
var
sInstrucaoSQL, sCampo: string;
begin
case cmbInstrumento.ItemIndex of
0: sCampo := 'TRAB_INDIV_NOTA_1';
1: sCampo := 'TRAB_INDIV_NOTA_2';
2: sCampo := 'PROVA_NOTA_1';
3: sCampo := 'PROVA_NOTA_2';
4: sCampo := 'OBSERVACAO_NOTA_1';
5: sCampo := 'OBSERVACAO_NOTA_2';
6: sCampo := 'TRAB_GRUPO_NOTA_1';
7: sCampo := 'TRAB_GRUPO_NOTA_2';
8: sCampo := 'SEMINARIO_NOTA_1';
9: sCampo := 'SEMINARIO_NOTA_2';
10: sCampo := 'PAINEL_NOTA_1';
11: sCampo := 'PAINEL_NOTA_2';
12: sCampo := 'DEBATE_NOTA_1';
13: sCampo := 'DEBATE_NOTA_2';
14: sCampo := 'AUTOAVALIACA_NOTA_1';
15: sCampo := 'AUTOAVALIACA_NOTA_2';
16: sCampo := 'RECUPERACAO1';
17: sCampo := 'RECUPERACAO2';
18: sCampo := 'RECUPERACAO3';
19: sCampo := 'RECUPERACAO4';
20: sCampo := 'RECUPERACAO_FINAL';
21: sCampo := 'CHAMADA2_REGULAR'
else
sCampo := 'CHAMADA2_PERIODO';
end;
sInstrucaoSQL := ('update NOTAS set '+sCampo+' = 0 '+
'where codiemp = :pCODIEMP and CODIGO_TURMA_NOTAS = :pTURMA and ANO = :pANO and ' +
'DISCIPLINA_NOTAS = :pDISCIPLINA and bimestre = :pBIMESTRE');
with QryInsereNota do
begin
Close;
SQL.Text := sInstrucaoSQL;
QryInsereNota.Params.ParamByName('pCODIEMP').AsInteger := sqlSearchMaster.FieldByName('codiemp').AsInteger;
QryInsereNota.Params.ParamByName('pTURMA').AsInteger := QryALUNOTURMACODIGO_TURMA.asinteger;
QryInsereNota.Params.ParamByName('pANO').AsString := sqlSearchMaster.FieldByName('ano').ASString;
QryInsereNota.Params.ParamByName('pDISCIPLINA').AsInteger := sqlSearchMaster.FieldByName('codi_disciplina').AsInteger;
QryInsereNota.Params.ParamByName('pBIMESTRE').AsString := Bimestre;
ExecSQL;
end;
QryALUNOTURMA.Refresh;
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)