Error when executing Update statement (generated)

Hi,

When updating a table (self generated SQL) an error occurs: “Duplicates are not allowed”.
The error occurs in uDASupportClasses in the TSearcheableCollectionCached.FindItem. More exactly in the RebuildList call (tries to add the same parameter twice).

Using Delphi 10.3.2, RODA 10.0.0.1457

UPDATE property SET
“procreatedon”= :procreatedon,
“procreatedbyfk”= :procreatedbyfk,

“proremark”= :proremark
WHERE
((“proid”=:OLD_proid) OR (:OLD_proid IS NULL AND “proid” IS NULL)) AND
((“procreatedon”=:OLD_procreatedon) OR (:OLD_procreatedon IS NULL AND “procreatedon” IS NULL)) AND
((“procreatedbyfk”=:OLD_procreatedbyfk) OR (:OLD_procreatedbyfk IS NULL AND “procreatedbyfk” IS NULL)) AND
((“prochangedon”=:OLD_prochangedon) OR (:OLD_prochangedon IS NULL AND “prochangedon” IS NULL)) AND

((“proremark”=:OLD_proremark) OR (:OLD_proremark IS NULL AND “proremark” IS NULL))

Thanks, logged as bugs://85755

bugs://85755 got closed with status fixed.

Hi,

pls update uDASupportClasses.pas as

procedure TSearcheableCollectionCached.RebuildList;
var
  i: integer;
begin
  {$IFDEF ROUseGenerics}
  FNameList.Clear;
  for i := 0 to Count -1 do
    if not FNameList.ContainsKey(AnsiUpperCase(GetItemName(Items[i]))) then
      FNameList.Add(AnsiUpperCase(GetItemName(Items[i])),Items[i]);
  {$ELSE}
  FNameList.Sorted:=False;
  FNameList.Clear;
  FNameList.Capacity:= Self.Count;
  FNameList.Sorted:=True;
  for i := 0 to Count -1 do
    if FNameList.IndexOf(GetItemName(Items[i])) = -1 then
      FNameList.AddObject(GetItemName(Items[i]),Items[i]);
  {$ENDIF}
  fNeedRebuild := False;
end;