Click or drag to resize

FunctionsUpdateAsync Method

Linkar Framework for .NET and Core


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

Namespace: Linkar.Functions.Direct.MV
Assembly: Linkar.Functions.Direct.MV (in Linkar.Functions.Direct.MV.dll) Version: 2.3.1
Syntax
public static Task<string> UpdateAsync(
	CredentialOptions credentialOptions,
	string filename,
	string records,
	UpdateOptions updateOptions = null,
	string customVars = "",
	int receiveTimeout = 0
)

Parameters

credentialOptions  CredentialOptions
Object with data necessary to access the Linkar Server: Username, Password, EntryPoint, Language, FreeText.
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.
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(CredentialOptions, 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.Direct.MV;

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

                result = Functions.UpdateAsync(credentials, "LK.CUSTOMERS", "2" + ASCII_Chars.FS_chr + "CUSTOMER UPDATE 2þADDRESS 2þ444" + ASCII_Chars.FS_chr + "").Result;
            }
            catch (Exception ex)
            {
                string error = ex.Message;
                // Do something
            }
            return result;
        }
    }
See Also