llCreateKeyValue

From Second Life Wiki
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.

Summary

Function: key llCreateKeyValue( string k, string v );

Start an asynchronous transaction to create a key-value pair associated with the given experience key using the given key and value.
Returns a handle (a key) that can be used to identify the corresponding dataserver event to determine if this command succeeded or failed.

• string k The key for the key-value pair
• string v The value for the key-value pair. Maximum 2047 characters, or 4095 if using Mono.

If the key already exists the dataserver will return a failure along with the error XP_ERROR_STORAGE_EXCEPTION.

Specification

Dataserver

The dataserver callback parameters are:

String Components
• integer success A boolean specifying if the transaction succeeded (1) or not (0).
• integer error An XP_ERROR_* flag that describes why the operation failed.
• string value The value for the key-value pair. Maximum 2047 characters, or 4095 if using Mono.

Examples

<lsl>key trans; default {

   touch_start(integer total_number)
   {
       trans = llCreateKeyValue("FOO", "BAR");
   }


   dataserver(key t, string value)
   {
       if (t == trans)
       {
           // our llCreateKeyValue transaction is done
           integer result = (integer)llGetSubString(value, 0, 0);
           if (result == 1)
           {
               // the key-value pair was successfully created
               llSay(0, "New key-value pair was created");
           }
           else
           {
               // the key-value pair was not created
               integer error = (integer)(llGetSubString(value, 2, -1));
               llSay(0, "Key-value failed to create: " + llGetExperienceErrorMessage(error));
           }
       }
   } 
}</lsl>

Deep Notes

Search JIRA for related Issues

Signature

function key llCreateKeyValue( string k, string v );