llCreateKeyValue

From Second Life Wiki
Revision as of 16:45, 14 April 2015 by Strife Onizuka (talk | contribs) (I'm not sure how this works. See https://wiki.secondlife.com/w/index.php?title=XP_ERROR_STORAGE_EXCEPTION&oldid=1195947)
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. Note! This value may contain commas.

Caveats

  • Attempting to create a key with llCreateKeyValue when that key already exist will return an error
All Issues ~ Search JIRA for related Bugs

Examples

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));
            }
        }
    } 
}

Deep Notes

Search JIRA for related Issues

Signature

function key llCreateKeyValue( string k, string v );