Fórum atualizar campos #220598

17/03/2004

0

O procedimento abaixo está sendo utilizado para atualizar campos de duas tbls!
Ele está me dando dor de cabeça pelo seguinte motivo: A tbl de CEDENTE é a ´Master´ e a SACADO_CEDENTE é a tbl ´Detalhe´... A partir daí, ele deveria selecionar todos os campos da tbl Sacado_Cedente que tivessem(e tem) um correspondente na tbl Cedente...
O que ele está fazendo? Ele calcula todos os valores da tbl Sacado_Cedente e depois só atualiza
o primeiro registro da tbl CEDENTES(tbl Master).
O que está errado no Código abaixo?
Como posso corrigir, já que ao meu ver parece estar tudo bem, inclusive com a linha que diz:
´DMFactoring.QrySelecao.SQL.Add(´ Where Sacado_cedente.CGC_CPF_CEDENTE = Cedente.CGC_CPF´);´



procedure TFrmBaixaDoc.SpeedButton1Click(Sender: TObject);
Var
VrSaldo, VrCredUsado : Double;
begin
VrSaldo := 0;
VrCredUsado := 0;

With DMFactoring.QrySelecao Do
Begin
DMFactoring.QrySelecao.Active := False;
DMFactoring.QrySelecao.SQL.Clear;
DMFactoring.QrySelecao.SQL.Add(´SELECT Sacado_cedente.CGC_CPF_CEDENTE, Sacado_cedente.VALOR, Sacado_cedente.BAIXADO, Cedente.LIMITE_CRED, Cedente.CREDITO_EM_USO, Cedente.SALDO, Cedente.CGC_CPF ´);
DMFactoring.QrySelecao.SQL.Add(´ FROM ´SACADO_CEDENTE.DB´ Sacado_cedente, ´CEDENTE.db´ Cedente ´);
DMFactoring.QrySelecao.SQL.Add(´ Where Sacado_cedente.CGC_CPF_CEDENTE = Cedente.CGC_CPF´);
DMFactoring.QrySelecao.Active := True;
DMFactoring.QrySelecao.First;
While Not (DMFactoring.QrySelecao.Eof) And (DMFactoring.QrySelecao.FieldByName(´BAIXADO´).Value = ´N´) Do
// And (DMFactoring.QrySelecao.FieldByName(´Sacado_cedente.CGC_CPF_CEDENTE´).Value = DMFactoring.QrySelecao.FieldByName(´Cedente.CGC_CPF´).Value) Do
Begin
VrCredUsado := VrCredUsado + DMFactoring.QrySelecao.FieldByName(´VALOR´).Value;
VrSaldo := DMFactoring.QrySelecao.FieldByName(´LIMITE_CRED´).Value - DMFactoring.QrySelecao.FieldByName(´VALOR´).Value;
DMFactoring.TblCedente.Edit;
DMFactoring.tblCedenteSALDO.Value := VrSaldo;
DMFactoring.tblCedenteCREDITO_EM_USO.Value := VrCredUsado;
DMFactoring.TblCedente.Post;
DMFactoring.QryAtualiza2.Active := False;
DMFactoring.QryAtualiza2.Params.ParamByName(´CREDUSADO´).Value := DMFactoring.QrySelecao.FieldByName(´CREDITO_EM_USO´).Value;
DMFactoring.QryAtualiza2.Params.ParamByName(´SALD´).Value := DMFactoring.QrySelecao.FieldByName(´SALDO´).Value;
DMFactoring.QryAtualiza2.Params.ParamByName(´CGC_CED´).Value := DMFactoring.QrySelecao.FieldByName(´CGC_CPF_CEDENTE´).Value;
DMFactoring.QryAtualiza2.ExecSQL;
DMFactoring.TblCedente.Refresh;
DMFactoring.QrySelecao.Next;
End;

End;

end;


Alexandretavares

Alexandretavares

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar