define function !!setprop(!el is dbref, !key is string, !val is real)
--$p $!el
!oldce = !!ce
!dtse = dtref of catref of $!el
--$p $!dtse
if not set(!dtse) then
  return
endif
var !datacol collect all data with (dkey eq !key ) for $!dtse
--q var !datacol
if !datacol.size() eq 1 then

!num = number of $!datacol[1]
--$P $!num $!val
--!el.desp[$!num] = !val
$!el
desp num $!num $!val
$!oldce
endif

--desp num $!num $!val
endfunction
