Database Level 2
This level is focused on transactions. It inherits all features of Level 1.
As with Level 1, API is separated into simple protocol-level API and advanced client-side API.
Protocol Level API
xfer(as, ql, isol)
Avoid using this API directly!
It is described only for reference purposes.
-
ql
array of queries:q
- raw queryaffected
- optional integer or boolean to check affected rowsselected
- optional integer or boolean to check affected rowsresult
- if true, query result is returnedtemplate
- if true, template backreferences are processed
-
isol
is one of isolation levels:- “RU” - read uncommitted
- “RC” - read committed
- “RR” - repeatable read
- “SRL” - serialiazable
Result is array of objects with seq
, rows
, fields
and affected
rows.
seq
is sequence number of original query in transaction batch. The rest of
variables have the same meaning as in ordinary query.
Client-side native API
-
XferBuilder newXfer(IsolationLevel isol="RC")
- Create new associated
XferBuilder
with specified isolation level.
- Create new associated
Examples
const db = ccm.db();
const xfer = db.newXfer();
xfer.insert('users', {affected: 1}).set({ first: 'First', last: 'Last'});
xfer.select('users', {result: true});
xfer.executeAssoc( as );
as.add( (as, res) => {
for ( let r of res[0] ) {
const { id, first, last } = r;
// ...
}
} );