Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou elaborando um sistema para a empresa, mas neste meio de caminho me surgiu uma dúvida que está me quebrando a cabeça.
No meu DBgrid está selecionada a linha que contém um código de número 6.
Ao pressionar uma determinada tecla, abre para mim, uma outra tela que me permite alterar o status e a data deste registro (codigo 6). Se eu pressionar o botão “Atualizar” deste novo form, a seguinte Query é executada:
DM_sosi.QR_atualiza_status_os.Close;
DM_sosi.QR_atualiza_status_os.SQL.Clear;
DM_sosi.QR_atualiza_status_os.SQL.Add('UPDATE cos_abertura_os');
DM_sosi.QR_atualiza_status_os.SQL.Add('SET data_fim_real = :DatFimReal ,');
DM_sosi.QR_atualiza_status_os.SQL.Add('cod_status = :CodStatus');
DM_sosi.QR_atualiza_status_os.SQL.Add('WHERE num_os_int = :NumOsInt');
DM_sosi.QR_atualiza_status_os.ParamByName('DatFimReal').AsString := quotedstr(DT_EC_data_fim_real.EditText);
DM_sosi.QR_atualiza_status_os.ParamByName('CodStatus').AsString := quotedstr(CBO_EC_status.KeyValue);
DM_sosi.QR_atualiza_status_os.ParamByName('NumOsInt').AsString := quotedstr(TXT_EC_Osint.Text);
DM_sosi.QR_atualiza_status_os.ExecSQL;
DM_sosi.TB_abertura_os.Refresh;
showmessage('OS: '+TXT_EC_Osint.Text+' atualizada com sucesso!');
frm_encerra_cancela_os.Close;
DM_sosi.QR_cons_os_pend.Close;
DM_sosi.QR_cons_os_pend.SQL.Clear;
DM_sosi.QR_cons_os_pend.SQL.Add('SELECT num_os_int, num_os_ext, cod_tipo_os, cod_sistema, cod_prioridade, num_programa, data_fim_prevista, titulo_os');
DM_sosi.QR_cons_os_pend.SQL.Add('FROM cos_abertura_os');
DM_sosi.QR_cons_os_pend.SQL.Add('WHERE cod_status = "P"');
DM_sosi.QR_cons_os_pend.Open;
Em seguida, a confirmação é executada (showmessage)
Porém, ao atualizar o DBgrid, percebemos que o registro cujo status foi alterado foi o de número 3 (primeiro registro da tabela) e não o de número 6 (que permaneceu no DBgrid).
Obs. No DBGrid, estão sendo mostradas somente os registros cujo status = “P”
Alguém saberia me responder por que a atualização está sendo realizada no primeiro registro da tabela e não de acordo com a parametrização de minha query?
Obrigado pela atenção.
Carregando comentários...