Click or drag to resize

LinkarClientUpdateAsync Method

Linkar Framework for .NET and Core


Update one or several records of a file, in a asynchronous way with JSON input and output format.

Namespace: Linkar.Functions.Persistent.JSON
Assembly: Linkar.Functions.Persistent.JSON (in Linkar.Functions.Persistent.JSON.dll) Version: 2.3.1
Syntax
public Task<string> UpdateAsync(
	string filename,
	string records,
	UpdateOptions updateOptions = null,
	JSON_FORMAT jsonFormat = JSON_FORMAT.JSON,
	string customVars = "",
	int receiveTimeout = 0
)

Parameters

filename  String
Name of the file being updated.
records  String
Buffer of record data to update. Inside this string are the recordIds, the modified records, and the originalRecords.
updateOptions  UpdateOptions  (Optional)
Object with write options, including optimisticLockControl, readAfter, calculated, dictionaries, conversion, formatSpec, originalRecords.
jsonFormat  JSON_FORMAT  (Optional)
Enum JSON_FORMAT specifies the desired output format: standard JSON, JSON_DICT format, or JSON_SCH format
customVars  String  (Optional)
Free text sent to the database allows management of additional behaviours in SUB.LK.MAIN.CONTROL.CUSTOM, which is called when this parameter is set.
receiveTimeout  Int32  (Optional)
Maximum time in seconds that the client will wait for a response from the server. Default = 0 to wait indefinitely.

Return Value

TaskString
The results of the operation.
Remarks
Inside the records argument, the recordIds and the modified records always must be specified. But the originalRecords not always. When updateOptions argument is specified and the OptimisticLockControl property is set to true, a copy of the record must be provided before the modification (originalRecords argument) to use the Optimistic Lock technique. This copy can be obtained from a previous ReadAsync(String, String, String, ReadOptions, JSON_FORMAT, String, Int32) operation. The database, before executing the modification, reads the record and compares it with the copy in originalRecords, if they are equal the modified record is executed. But if they are not equal, it means that the record has been modified by other user and its modification will not be saved. The record will have to be read, modified and saved again.
Example
using Linkar;
using Linkar.Functions.Persistent.JSON;

class Test
    {
        public string MyUpdate()
        {
            string result = "";
            try
            {
                CredentialOptions credentials = new CredentialOptions("127.0.0.1", "EPNAME", 11300, "admin", "admin");
                LinkarClient client = new LinkarClient();
                client.Login(credentials);

                result = client.UpdateAsync("LK.CUSTOMERS", 
                    "{" +
                    "  \"RECORDS\": [" +
                    "    {" +
                    "      \"LKITEMID\": \"2\"," +
                    "      \"NAME": \"CUSTOMER 2\"," +
                    "      \"ADDR": \"ADDRESS 2\"," +
                    "      \"PHONE": \"444\"" +
                    "    }" +
                    "  ]" +
                    "}").Result;
                client.Logout();
            }
            catch (Exception ex)
            {
                string error = ex.Message;
                // Do something
            }
            return result;
        }
    }
See Also