$ListRep_Lstr

From m204wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Replace a $list item with a longstring

Note: Many $functions have been deprecated in favor of Object Oriented methods. The OO equivalent for the $ListRep_Lstr function is Replace.

This function replaces an existing $list item with a longstring. Generally, this $list would have been created with the $ListNew function.

The $ListRep_Lstr function accepts three arguments and returns a numeric result. It is a callable $function.

The first argument is a $list identifier. This is a required argument.

The second argument is the item number which is to be replaced. This is a required argument.

The third argument is a string that is to replace the $list item indicated by the second argument. This is a required argument.

Syntax

[%RESULT =] $ListRep_Lstr(list_identifier, item_num, string)

%result is set to 0 if the new item length is the same as the replaced item length, 1 if it is shorter, 2 if it is longer, or a negative number if an error has occurred.

Error codes

-3 - No room to add item (if LISTFC $SirParm parameter not set) All other errors cause request cancellation

Usage notes

  • $ListRep_Lstr works almost exactly like $ListRep except:
    • It accepts a longstring input. $ListRep_Lstr can be used with regular strings as well to pick up automatic request cancellation on programming errors.
    • It cancels the request on any errors such as invalid $list identifier or invalid $list item number.
    • It does not have an item length argument (argument 4 in $ListRep).
  • $ListRep_Lstr is extremely efficient if the $list item size is not being changed (return value for $ListRep_Lstr of 0), fairly efficient when a $list item is being replaced with a shorter string (return value of 1) and can be fairly expensive when a $list item is being replaced with a longer string (return value of 2). The latter case can be expensive because such a $ListRep_Lstr can result in the splitting of a $list leaf page. Once a leaf page is split, it will not be merged back together, even if subsequent $ListRems makes this possible. Because of this, heavy use of $LISREP_LSTRs that increase $list item size (and $ListIns and $ListRem) can result in "sparse" $lists which place an unnecessary burden on the buffer pool and CCATEMP. $List compression can be done using the $List_Copy_Items function.

Products authorizing $ListRep_Lstr