Erro A linha não pode ser localizada para atualização

Delphi

02/06/2009

Olá Pessoal,

Eu de novo agradeço a todos que tem me ajudado pois estou desenvolvendo um trabalho de conclusão de curso e para o último form tenho o seguinte erro:

´Project CredSys.exe raised exception calss EDataBaseError with message ´A linha não pode ser localizada para atualização. Alguns valores podem ter sido alterados desde que ela foi lida pela última vez´. Process stopped. Use Step or Run to continue.´

Abaixo coloco o código do procedure que ocorre o erro neste código uso Filter mas já tentei com locate também!

Espero a ajuda.
Obrigado!

procedure TFrmRetorno.BLerRetornoClick(Sender: TObject);
var
DataAtual, Retorno, DataOcorrencia, DataPagamento, DataVencimento, SeuNumero: String;
Vencimento, Pagamento: TDateTime;
i,j, NossoNumero, Ocorrencia, BancoCobrador, Agencia, Dias,
Filial, Contrato, NumParcela: Integer;
Valor, Pendencia, MoraDia, Total: Real;
Arq: TextFile;
Achou: Boolean;
Label
Fim;
begin
DataAtual:= DateToStr(Date());
Retorno:= OpenRetorno.FileName;
Lendo:=0;
if Trim(Retorno) = ´´ then
begin
ShowMessage(´Selecione um Arquivo´);
Abort;
end;
Try
if DMConeccao.ADOConeccao.InTransaction = False then
DMConeccao.ADOConeccao.BeginTrans;
//
try
Screen.Cursor := crHourGlass;
//
GBRetorno.Titulos.Clear;
GBRetorno.NomeArquivo := Retorno;
if Not GBRetorno.LerRetorno then
begin
ShowMessage(´Arquivo Retorno Errado ou vazio´);
Abort;
end;
//
for i:= 0 to GBRetorno.Titulos.Count do
begin
Dias:= 0;
MoraDia:= 0;
GBTitulo:= GBRetorno.Titulos[i];
NossoNumero:= StrtoInt(GBTitulo.NossoNumero);
// Ocorrencia:= StrToInt(GBTitulo.OcorrenciaOriginal);
//
// DataOcorrencia:= DatetoStr(GBTitulo.DataOcorrencia);
DataPagamento:= DateToStr(GBTitulo.DataCredito);
Valor:= GBTitulo.ValorDocumento;
SeuNumero:= GBTitulo.NumeroDocumento;
Filial:= StrToInt(Copy(SeuNumero,3,2));
Contrato:=StrToInt(Copy(SeuNumero,5,10));
NumParcela:=StrToInt(Copy(SeuNumero,23,3));
DataVencimento:= DateToStr(GBTitulo.DataVencimento);
DMConeccao.TBBoleta.Active:= True;
//
if Filial = 0 then
begin
DMConeccao.TBBoleta.Filter:=´NossoNumero = ´+ IntToStr(NossoNumero);
DMConeccao.TBBoleta.Filtered:= True;
end
else
begin
DMConeccao.TBBoleta.Filter:= ´CodFilial = ´ + IntToStr(Filial) +
´ and CodContrato = ´ + IntToStr(Contrato) + ´ and NumParcela = ´ + IntToStr(NumParcela);
DMConeccao.TBBoleta.Filtered:= True;
end;
//
if Not DMConeccao.TBBoleta.Filtered then
begin
RelatorioRetorno.Lines.Add(´Boleta Não Encontrada:´);
RelatorioRetorno.Lines.Add(IntToStr(NumParcela));
RelatorioRetorno.Lines.Add(´ ´);
goto Fim;
end;
//
DMConeccao.TBPrestacoes.Active:= True;
DMConeccao.TBPrestacoes.Filter:= ´CodFilial = ´ + DMConeccao.TBBoletaCodFilial.Text +
´ and CodContrato = ´ + DMConeccao.TBBoletaCodContrato.Text +
´ and NumParcela = ´ + IntToStr(NumParcela);
DMConeccao.TBPrestacoes.Filtered:= True;
//
if Not DMConeccao.TBPrestacoes.Filtered then
begin
RelatorioRetorno.Lines.Add(´Prestação Não Encontrada:´);
RelatorioRetorno.Lines.Add(IntToStr(NumParcela));
RelatorioRetorno.Lines.Add(´ ´);
goto Fim;
end;
//
DMConeccao.TBContrato.Active:= True;
DMConeccao.TBContrato.Filter:= ´CodFilial = ´ + DMConeccao.TBBoletaCodFilial.Text +
´ and CodContrato = ´ + DMConeccao.TBBoletaCodContrato.Text;
DMConeccao.TBContrato.Filtered:= True;
//
if Not DMConeccao.TBContrato.Filtered then
begin
RelatorioRetorno.Lines.Add(´Contrato Não Encontrado:´);
RelatorioRetorno.Lines.Add(IntToStr(Contrato));
RelatorioRetorno.Lines.Add(´ ´);
goto Fim;
end;
//
DMConeccao.TBPrestacoes.Edit;
DMConeccao.TBContrato.Edit;
//
DMConeccao.TBPrestacoesValorPago.Value:= Valor;
DMConeccao.TBPrestacoesDataPagamento.Value:= DataPagamento;
// DMConeccao.TBPrestacoesCodBancoReceptor.Value:= BancoCobrador;
Pagamento:= StrToDate(DataPagamento);
Vencimento:= StrToDate(DMConeccao.TBPrestacoesDataVencimento.Value);
//
if Pagamento > Vencimento then
begin
Dias:= DaysBetween(Pagamento, Vencimento);
MoraDia:= DMConeccao.TBPrestacoesValorParcela.Value * 0.0033;
DMConeccao.TBPrestacoesValorMulta.Value:= DMConeccao.TBPrestacoesValorParcela.Value * 0.02;
DMConeccao.TBPrestacoesValorMora.Value:= MoraDia * Dias;
Total:= DMConeccao.TBPrestacoesValorMulta.Value + DMConeccao.TBPrestacoesValorMora.Value;
end;
//
Pendencia:= Valor - DMConeccao.TBPrestacoesValorParcela.Value;
//
if Pendencia < 0 then
DMConeccao.TBContratoPendencias.Value:= Pendencia - Total
else
begin
if Pendencia <> Total then
begin
if Pendencia < Total then
DMConeccao.TBContratoPendencias.Value:= -(Total - Pendencia)
else
DMConeccao.TBContratoPendencias.Value:= Pendencia - Total;
end;
end;
//
DMConeccao.TBContratoSaldoAtual.Value:= DMConeccao.TBContratoSaldoAtual.Value
+ DMConeccao.TBPrestacoesValorAmortizacao.Value;
//
DMConeccao.TBPrestacoes.Post;
DMConeccao.TBContrato.Post;
Fim:
end;
Lendo:=1;
finally
Screen.Cursor := crDefault;
DMConeccao.TBPrestacoes.Active:= False;
DMConeccao.TBContrato.Active:= False;
end;
except
ShowMessage(´Erro ao Ler Retorno´);
Exit;
end;
end;


Regito

Regito

Curtidas 0
POSTAR