new TubList() #

Named collection of parameters.

Think of it as an pain JavaScript object with property values that are stored in the native code, not inside a JavaScript runtime

Members

asJSON : String instance #

Stringified JSON representation of named collection

count : Number instance #

Number of named collection items

items : Array instance #

Array of collection items

strings : Array instance #

Array of collection item names

Methods

byName(name)→Number | String | TubList instance #

Get list element by name

clear() instance #

Delete all elements from list

setBLOBValue(paramName : String, data : ArrayBuffer, encodingopt : String) instance #

Add parameter with name paramName, set it type to Blob and value to data. In case parameter with same name exists - replace it.

After call content of JavaScript variable is copied to server memory, so to avoid memory overflow developer can set JS variable to NULL to allow GC to free memory.

Use this feature to pass BLOB's as database operation parameter value.

Arguments info:

  • paramName: String

    Name of a parameter to add BLOB to

  • data: ArrayBuffer

    Data to write. If Object - it stringify before write

  • encoding: String

    Encode data to encoding before write. Default to utf-8 in case data is String or bin in case data is ArrayBuffer. One of "utf-8"|"ucs2"|"bin"|"base64".

Examples

    
        var
    store = new TubDataStore('tst_blob'),
    l = new TubList(),
    fs = require('fs'),
    arr;
 arr = fs.readFileSync(process.binPath + 'UB.exe', {encoding: 'bin'}); // get content of binary file as array buffer
 l.ID = store.generateID();
 l.description = 'test1';
 l.setBLOBValue('blb', arr); // set BLOB type parameter value.
 // in case we sure arr is === ArrayBuffer can be simplified to: l.blb = arr;
 arr = null; // give a GC chance to release array memory
 store.execSQL('insert into tst_blob(id, description, blb) values(:ID:, :description:, :blb:)', l);