Click or drag to resize

LinkarClientUpdatePartialAsync Method

Linkar Framework for .NET and Core


Update one or more attributes of one or more file records, in a asynchronous way with MV input and output format.

Namespace: Linkar.Functions.Persistent.MV
Assembly: Linkar.Functions.Persistent.MV (in Linkar.Functions.Persistent.MV.dll) Version: 2.3.1
Syntax
public Task<string> UpdatePartialAsync(
	string filename,
	string records,
	string dictionaries,
	UpdateOptions updateOptions = null,
	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. Use StringFunctions.ComposeUpdateBuffer (Linkar.Strings library) function to compose this string.
dictionaries  String
List of dictionaries to write, separated by space. In MV output format is mandatory. You may use the format LKFLDx where x is the attribute number.
updateOptions  UpdateOptions  (Optional)
Object with write options, including optimisticLockControl, readAfter, calculated, dictionaries, conversion, formatSpec, originalRecords.
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, 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.MV;

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

                result = client.UpdatePartialAsync("LK.CUSTOMERS", "2" + ASCII_Chars.FS_chr + "CUSTOMER 2" + ASCII_Chars.FS_chr + "", "NAME").Result;
                client.Logout();
            }
            catch (Exception ex)
            {
                string error = ex.Message;
                // Do something
            }
            return result;
        }
    }
See Also