aboutsummaryrefslogtreecommitdiff
path: root/OpcodeDocumentation.md
diff options
context:
space:
mode:
Diffstat (limited to 'OpcodeDocumentation.md')
-rw-r--r--OpcodeDocumentation.md111
1 files changed, 111 insertions, 0 deletions
diff --git a/OpcodeDocumentation.md b/OpcodeDocumentation.md
new file mode 100644
index 0000000..cf0c218
--- /dev/null
+++ b/OpcodeDocumentation.md
@@ -0,0 +1,111 @@
+
+# Connection
+
+### dbconnect
+ idb dbconnect Stype, Spath
+ idb dbconnect Stype, Shost, Sdatabase, Suser, Spassword
+
+Connect to a database of type *Stype* and keep the reference in the handle *idb*
+
+SQLite connections require only the path to the database file, or *:memory:* can be used for an in-memory database.
+MySQL and PostgreSQL connections require hostname/IP, database name, username and password.
+
+
+Recommended to be run in the global orchestra space.
+
+ ; SQLite connection
+ gidb dbconnect "sqlite", "/path/to/database.db"
+
+ ; MySQL and PostgreSQL connections
+ gidb dbconnect "mysql", "hostname", "database_name", "username", "password"
+ gidb dbconnect "postgresql", "hostname", "database_name", "username", "password"
+
+# Executing statements
+All opcodes require
+
+ - *idb* , which is the handle created by the dbconnect opcode.
+ - *Squery*, which is the SQL statement to be executed.
+
+## i-rate query opcodes
+
+
+
+### dbexec
+ dbexec idb, Squery
+Execute a SQL statement returning no results.
+
+ dbexec gidb, "CREATE TABLE frequencies (frequency FLOAT)"
+### dbscalar
+ ires dbscalar idb, Squery [, irow] [, icolumn]
+ Sres dbscalar idb, Squery [, irow] [, icolumn]
+Return a single numeric or string value. Optionally *irow* and *icolumn* can be specified which default to 0 and 0 , ie the first value.
+
+ inumber dbscalar gidb, "SELECT 1, 2, 3", 0, 2
+ Svalue dbscalarstr gidb, "SELECT 'this', 'is', 'a', 'test'"
+
+### dbarray
+ ires[][] dbarray idb, Squery
+ Sres[][] dbarray idb, Squery
+Return a two-dimensional numeric or string array.
+
+ ires[][] dbarray gidb, "SELECT 1, 2 UNION SELECT 3, 4"
+ Sres[][] dbarray gidb, "SELECT 'this', 'is' UNION SELECT 'a', 'test'"
+
+
+## k-rate query opcodes
+All opcodes require
+
+ - *ktrigger* , which triggers the execution of the statement when the value is 1 or -1. If -1, any future triggers are ignored. For example *ktrigger* can be set to -1 initially and the statement will execute once.
+
+All opcodes emit
+
+ - *kdone* , which is set to 1 for a single k-cycle when the statement execution has completed.
+
+### dbexec_k
+ kdone dbexec_k idb, Squery, ktrigger
+Execute a SQL statement returning no results.
+
+ kdone dbexec_k gidb, "CREATE TABLE frequencies (frequency FLOAT)", -1
+
+### dbscalar_k
+ kdone, kres dbscalar idb, Squery, ktrigger [, krow] [, kcolumn]
+ kdone, Sres dbscalar idb, Squery, ktrigger [, krow] [, kcolumn]
+Return a single numeric or string value. Optionally *krow* and *kcolumn* can be specified which default to 0 and 0 , ie the first value.
+
+
+ kdone, knumber dbscalar_k gidb, "SELECT 1, 2, 3", ktrigger, 0, 2
+ kdone, Svalue dbscalarstr_k gidb, "SELECT 'this', 'is', 'a', 'test'", ktrigger
+
+### dbarray_k
+ kdone, kres[][] dbarray_k idb, Squery, ktrigger
+ kdone, Sres[][] dbarray_k idb, Squery, ktrigger
+Return a two-dimensional numeric or string array. Note: any operations on the result array may fail before the query has completed. Hence ideally initialise the array first, or make sure *kdone* == 1 , otherwise the accessing the array will fail.
+
+ kdone, kres[][] dbarray gidb, "SELECT 1, 2 UNION SELECT 3, 4", -1
+ kdone, Sres[][] dbarray_k gidb, "SELECT 'this', 'is' UNION SELECT 'a', 'test'", ktrigger
+
+## k-rate query opcodes (blocking)
+These opcodes will block the execution of the k-cycle until complete so should not be used for realtime purposes. Ie offline rendering or special operations (eg in example 7) should be fine.
+
+
+### dbexec_kb
+ dbexec_kb idb, Squery
+Execute a SQL statement returning no results.
+
+ dbexec_kb gidb, "CREATE TABLE frequencies (frequency FLOAT)"
+
+### dbscalar_kb
+ kres dbscalar_kb idb, Squery [, krow] [, kcolumn]
+ Sres dbscalarstr_kb idb, Squery [, krow] [, kcolumn]
+Return a single numeric or string value. Optionally *krow* and *kcolumn* can be specified which default to 0 and 0 , ie the first value.
+
+ knumber dbscalar_kb gidb, "SELECT 1, 2, 3", 0, 2
+ Svalue dbscalar_kb gidb, "SELECT 'this', 'is', 'a', 'test'"
+
+### dbarray_kb
+ kres[][] dbarray_kb idb, Squery
+ Sres[][] dbarray_kb idb, Squery
+Return a two-dimensional numeric or string array.
+
+ kres[][] dbarray_kb gidb, "SELECT 1, 2 UNION SELECT 3, 4"
+ Sres[][] dbarray_kb gidb, "SELECT 'this', 'is' UNION SELECT 'a', 'test'"