Difference between revisions of "LlCreateKeyValue"

From Second Life Wiki
Jump to: navigation, search
m
Line 1: Line 1:
 
[[Category:Experience Tools]]
 
[[Category:Experience Tools]]
 
{{LSL_Function
 
{{LSL_Function
|inject-2={{LSL Function/KeyValue|k|v}}
+
|inject-2=
 +
{{LSL Function/KeyValue/Value|value}}
 +
{{LSL Function/KeyValue|k|v|dataserver|d2_type=string|d2_name=value}}
 
|func=llCreateKeyValue
 
|func=llCreateKeyValue
 
|func_desc=Start an asynchronous transaction to create a key-value pair associated with the given experience key using the given key and value.
 
|func_desc=Start an asynchronous transaction to create a key-value pair associated with the given experience key using the given key and value.
|func_footnote=Will fail with [[XP_ERROR_STORAGE_EXCEPTION]] if the key already exists.
+
|func_footnote=Will fail with [[XP_ERROR_STORAGE_EXCEPTION]] if the key already exists.<br><br>
 
+
The [[dataserver]] callback parameters are:
+
* A key containing the {{LSLGC|Key/handle|handle}} returned from llCreateKeyValue
+
* A string containing a comma-delimited list.  The first item is a boolean specifying if the transaction succeeded (1) or not (0).  The second item is a string with a status/error message if it failed or the value if the transaction succeeded.
+
 
|return_type=key|return_subtype=handle
 
|return_type=key|return_subtype=handle
 
|return_text=that can be used to identify the corresponding [[dataserver]] event to determine if this command succeeded or failed.
 
|return_text=that can be used to identify the corresponding [[dataserver]] event to determine if this command succeeded or failed.
Line 15: Line 13:
 
|also_functions=
 
|also_functions=
 
*[[llGetExperienceErrorMessage]]
 
*[[llGetExperienceErrorMessage]]
*[[llCreateKeyValue]]
 
 
*[[llReadKeyValue]]
 
*[[llReadKeyValue]]
 
*[[llUpdateKeyValue]]
 
*[[llUpdateKeyValue]]
Line 53: Line 50:
 
}</lsl>
 
}</lsl>
 
|cat1=Experience
 
|cat1=Experience
|cat2=Dataserver
+
|cat2=Experience/Data
 +
|cat3=Dataserver
 
}}
 
}}

Revision as of 13:24, 9 July 2014

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.

Will fail with XP_ERROR_STORAGE_EXCEPTION if the key already exists.

Specification

Dataserver

The dataserver callback parameters are:

  • A key containing the handle returned from llCreateKeyValue
  • A string containing a comma-delimited list (cdl). llDumpList2String([ integer success ] + components);
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 );