$ListIns_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.

Insert string into a $list

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

This function inserts longstring data into a $list. Generally, this $list would have been created with the $ListNew function.

The $ListIns_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 before which the longstring is to be inserted. If this argument is equal to the number of items in the $list plus one, the longstring is added to the end of the $list and so is, in this case, identical to a $ListAdd_Lstr Because the string is inserted before the indicated item number, this item number is also the item number of the new $list item after $ListIns_Lstr returns. This is a required argument.

The third argument is a longstring that is to be inserted into the $list. This is a required argument.

Syntax

[%RESULT =] $ListIns_Lstr(list_id, item_num, longstring)

%result is set either to the number of items in the indicated $list after the string has been inserted into the $list, or to 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 result in request cancellation

Usage notes

  • $ListIns_Lstr works almost exactly like $ListIns except:
    • It accepts a LONGSTRING input. $ListIns_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 $ListIns).
  • A $ListIns_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 $ListIns_Lstr and $ListRem can result in "sparse&CQ. $lists which place an unnecessary burden on the buffer pool and CCATEMP. To make matters worse, $ListCpy does a page-for-page copy of a $list so does not result in any compression of the resultant $list. $List compression can be done using the $List_Copy_Items function.

Products authorizing $ListIns_Lstr