Recent

Author Topic: TBufferDataSet List Index -1 out bounds on locate  (Read 503 times)

eldonfsr

  • Sr. Member
  • ****
  • Posts: 446
TBufferDataSet List Index -1 out bounds on locate
« on: June 03, 2023, 11:11:49 pm »
I confuse  i crate a tbufferdataset ans start to add record i add only new record and validate if record exist on second record send me error.....

using locate but send me this error, just on
BDCarCli.Locate('numcli', SQLQRep.FieldByName('NumCli').AsString , [])

send me error....

Code: Pascal  [Select][+][-]
  1.    BDCarCli.Open;
  2.     SQLQRep.First;
  3.     while( not SQLQRep.EOF) do begin
  4.        if not BDCarCli.Locate('numcli', SQLQRep.FieldByName('NumCli').AsString , []) then begin
  5.           BDCarCli.Append;
  6.           BDCarCli.FieldByName('NumCli').AsString:= SQLQRep.FieldByName('NumCli').AsString;
  7.           BDCarCli.FieldByName('NomCli').AsString:= SQLQRep.FieldByName('NomCli').AsString;
  8.        end else begin
  9.          BDCarCli.edit;
  10.        end;
  11.        if( SQLQRep.FieldByName('Dias').AsInteger<0) then begin
  12.          BDCarCli.FieldByName('PorVencer').AsFloat:=BDCarCli.FieldByName('PorVencer').AsFloat+ SQLQRep.FieldByName('Saldodoc').AsFloat;
  13.        end;
  14.        if( (SQLQRep.FieldByName('Dias').AsInteger>0) and(SQLQRep.FieldByName('Dias').AsInteger<=30) ) then begin
  15.          BDCarCli.FieldByName('Vdo0a30').AsFloat:= BDCarCli.FieldByName('Vdo0a30').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;
  16.        end;
  17.        if( (SQLQRep.FieldByName('Dias').AsInteger>30) and(SQLQRep.FieldByName('Dias').AsInteger<=60) ) then begin
  18.          BDCarCli.FieldByName('Vdo30a60').AsFloat:= BDCarCli.FieldByName('Vdo30a60').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;
  19.        end;
  20.        if( (SQLQRep.FieldByName('Dias').AsInteger>60) and(SQLQRep.FieldByName('Dias').AsInteger<=90) ) then begin
  21.          BDCarCli.FieldByName('Vdo60a90').AsFloat:= BDCarCli.FieldByName('Vdo60a90').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;
  22.        end;
  23.        if( (SQLQRep.FieldByName('Dias').AsInteger>90)  ) then begin
  24.          BDCarCli.FieldByName('VdoMas90').AsFloat:= BDCarCli.FieldByName('VdoMas90').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;
  25.        end;
  26.        BDCarCli.FieldByName('Saldo').AsFloat:= BDCarCli.FieldByName('Saldo').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;
  27.        BDCarCli.post;
  28.        SQLQRep.next;
  29.     end;
  30.  
  31.  

« Last Edit: June 03, 2023, 11:56:25 pm by Martin_fr »

eldonfsr

  • Sr. Member
  • ****
  • Posts: 446
Re: TBufferDataSet List Index -1 out bounds on locate
« Reply #1 on: June 04, 2023, 01:54:18 am »
I solved i change to use MemDataset and is working......

 

TinyPortal © 2005-2018