TBufferDataSet List Index -1 out bounds on locate lazarus / 16-Databases ---------------------------------------------------------------------- eldonfsr · 2023-06-03 21:11 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][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i    BDCarCli.Open;    SQLQRep.First;    while( not SQLQRep.EOF) do begin       if not BDCarCli.Locate('numcli', SQLQRep.FieldByName('NumCli').AsString , []) then begin          BDCarCli.Append;          BDCarCli.FieldByName('NumCli').AsString:= SQLQRep.FieldByName('NumCli').AsString;          BDCarCli.FieldByName('NomCli').AsString:= SQLQRep.FieldByName('NomCli').AsString;       end else begin         BDCarCli.edit;       end;       if( SQLQRep.FieldByName('Dias').AsInteger<0) then begin         BDCarCli.F ieldByName('PorVencer').AsFloat:=BDCarCli.FieldByName('PorVencer').AsF loat+ SQLQRep.FieldByName('Saldodoc').AsFloat;       end;       if( (SQLQRep.FieldByName('Dias').AsInteger>0) and(SQLQRep.FieldByName('Dias').AsInteger<=30) ) then begin         BDCarCli.FieldByName('Vdo0a30').AsFloat:= BDCarCli.FieldByName('Vdo0a 30').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;       end;       if( (SQLQRep.FieldByName('Dias').AsInteger>30) and(SQLQRep.FieldByName('Dias').AsInteger<=60) ) then begin         BDCarCli.FieldByName('Vdo30a60').AsFloat:= BDCarCli.FieldByName('Vdo3 0a60').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;       end;     if( (SQLQRep.FieldByName('Dias').AsInteger>60) and(SQLQRep.FieldByName('Dias').AsInteger<=90) ) then begin         BDCarCli.FieldByName('Vdo60a90').AsFloat:= BDCarCli.FieldByName('Vdo6 0a90').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;       end;     if( (SQLQRep.FieldByName('Dias').AsInteger>90)  ) then begin         BDCarCli.FieldByName('VdoMas90').AsFloat:= BDCarCli.FieldByName('VdoM as90').AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;       end;     BDCarCli.FieldByName('Saldo').AsFloat:= BDCarCli.FieldByName('Saldo' ).AsFloat+SQLQRep.FieldByName('Saldodoc').AsFloat;       BDCarCli.post;       SQLQRep.next;    end; ---------------------------------------------------------------------- eldonfsr · 2023-06-03 23:54 I solved i change to use MemDataset and is working......