------------------
ddb reference card
------------------
{tab} ← tname ddb.create defs · · · · ⍝ Create table.
{ex} ← ddb.remove table · · · · ⍝ Remove table.
{size} ← table ddb.append vals · · · · ⍝ Append row(s) to table.
{size} ← table ddb.retain rows · · · · ⍝ Retain only selected rows.
tab ← {r/w} ddb.open table · · · · ⍝ Open table {read/write}.
defs ← ddb.defs table · · · · ⍝ Field definitions.
vals ← table ddb.get {rows} fields · · ⍝ Get field(s) from table.
{vals} ← table ddb.put {rows} fields vals · ⍝ Replace vals in field(s).
where:
tname character vector table file name.
tab handle for open table.
table either file name or handle.
{size} shy result: size of file in bytes.
defs (name type, shape ...) ...
vals vector of field value arrays.
{rows} optional boolean row selector.
fields simple or nested field name(s).
{ex} shy result: table existed.
defs:
name character vector field name.
type one of: 80 160 320 83 163 323 645.
shape +ive fixed axis, -ive variable axis.
-----
Notes
-----
ddb.create Larg: Appends '.ddb' to file name, if no extension is given.
Returns a shy read-write handle.
ddb.remove Rarg: Does not error if the file does not exist.
ddb.append Rarg: Cell values for each field.
ddb.open Larg: Optional access 'r' (default) or 'w'.
ddb.get Rarg: Simple or nested character vector field name(s). The simple
ddb.put boolean mask vector applies in parallel to all fields.
Example tab←'mytab' ddb.create ('name' 80 ¯6) ('age' 83) ⍝ create table.
------- tab ddb.append ('Box' 'Cox') (53 49) ⍝ append values.
tab ddb.put (1 0) 'age' 54 ⍝ replace one item.
tab ddb.get tab.names ⍝ get all fields.
Box Cox 54 49
tab ddb.retain 0 1 ⍝ delete first row.
tab ddb.get tab.names ⍝ get all fields.
Cox 49
ddb.remove tab ⍝ delete table.
Error Message ACDGOPMT ← Append Create Defs Get Open Put reMove reTain
------------- --------
11 BAD FIELD TYPE ·⎕······ Type not one of: 80 160 320 83 163 323 645.
22 BAD TABLE NAME ⎕⎕⎕⎕⎕⎕⎕⎕ Table file does/does not exist.
19 READ-ONLY TABLE ⎕····⎕·⎕ Table opened without 'w' left argument.
19 TABLE OPEN ······⎕⎕ Too many handles for this table.
06 BAD NAME field ···⎕·⎕·· Mis-spelled field name.
11 BAD VALUE in ... ⎕····⎕·· Value type conversion fails.
11 BAD TYPE in ... ⎕····⎕·· Improper type conversion.
10 BAD SIZE in ... ⎕····⎕·· Value array too big for field.
04 BAD RANK in ... ⎕····⎕·· Value rank conflicts with field definition.
11 BAD DEPTH in ... ⎕····⎕·· Value depth conflicts with sign of field type.
Back to: Contents