Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ae gente to tentando usar o Update em um registro mais não to conceguindo to usando o seguinte codigo, algum pd me falar ond q ta errado
procedure TFrmCadMedico.Update;
begin
DMFisio.QCadMedico.Active:= False;
DMFisio.QCadMedico.SQL.Clear;
DMFisio.QCadMedico.SQL.Add(update medicos set crm = :crm, nome = :nome, especialidade = :especialidade where crm = :OLD_crm and nome = :OLD_nome and especialidade = :OLD_especialidade');
DMFisio.QCadMedico.ParamByName('crm').AsString := txtcrm.Text;
DMFisio.QCadMedico.ParamByName('nome').AsString := txtnome.Text;
DMFisio.QCadMedico.ParamByName('especialidade').AsString := txtespecialidade.Text;
DMFisio.QCadMedico.Open;
DMFisio.QCadMedico.ExecSQL;
end;tentei mais tb ta dando erro
Bom, coloque a mensagem de erro então :P
Mensagem de erro sempre ajuda...
ah, falta você setar os parametros que você define como OLD...
data base erro field "old_crm"
ah, falta você setar os parametros que você define como OLD... um deles é old_crm
como assim? pd me dar um exemplo?
uai, você já nao fez
DMFisio.QCadMedico.ParamByName('crm').AsString := txtcrm.Text;
DMFisio.QCadMedico.ParamByName('nome').AsString := txtnome.Text;
DMFisio.QCadMedico.ParamByName('especialidade').AsString := txtespecialidade.Text;
???
entao tem q fazer tb
DMFisio.QCadMedico.ParamByName('OLD_crm').AsString := VALOR QUALQUER 1
DMFisio.QCadMedico.ParamByName('OLD_nome').AsString := VALOR QUALQUER 2
DMFisio.QCadMedico.ParamByName('OLD_especialidade').AsString := VALOR QUALQUER 2
sacô?
DMFisio.QCadMedico.Active:= False;
DMFisio.QCadMedico.SQL.Clear;
DMFisio.QCadMedico.SQL.Add('update medicos set crm = :crm, nome = :nome, especialidade = :especialidade, codespecialidade = :codespecialidade where crm = :OLD_crm and nome = :OLD_nome and especialidade = :OLD_especialidade and codespecialidade = :OLD_codespecialidade');
DMFisio.QCadMedico.ParamByName('crm').AsString := txtcrm.Text;
DMFisio.QCadMedico.ParamByName('nome').AsString := txtnome.Text;
DMFisio.QCadMedico.ParamByName('especialidade').AsString := txtespecialidade.Text;
DMFisio.QCadMedico.ParamByName('codespecialidade').AsString := txtCodEspecialidade.Text;
DMFisio.QCadMedico.ParamByName('OLD_crm').AsString := txtcrm.Text;
DMFisio.QCadMedico.ParamByName('OLD_nome').AsString := txtnome.Text;
DMFisio.QCadMedico.ParamByName('OLD_especialidade').AsString := txtespecialidade.Text;
DMFisio.QCadMedico.ParamByName('OLD_codespecialidade').AsString := txtCodEspecialidade.Text;
DMFisio.QCadMedico.ExecSQL;
assim broder ??
tpw continua dando erro se for
FAzendo assim, os valores da atualização estão iguais ao valores da clausula, o que significa que você está atualizando um registro que já está na sua mão!! entende?
será que você precisa mesmo usar o update??
Tente da seguinte forma:
Basicamente tirando somente o:
DMFisio.QCadMedico.Open;