Skip to content

db

This content is for v1.0. Switch to the latest version for up-to-date documentation.

The db namespace provides relational database connectivity (PostgreSQL / SQLite connection string protocol) built into RayQuiro. No import is required.


FunctionSignatureReturn TypeDescription
db.connectdb.connect(conninfo)numberOpens connection. Returns a numeric connection handle (or 0 on error).
db.querydb.query(handle, sql)arrayExecutes query and returns array of row objects.
db.execdb.exec(handle, sql)numberExecutes SQL statement and returns number of affected rows.
db.scalardb.scalar(handle, sql)anyReturns the first column of the first row (or null).
db.closedb.close(handle)boolCloses the database connection.

var conn = db.connect("host=localhost port=5432 dbname=app user=postgres password=secret");
if (conn != 0) {
db.exec(conn, "CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name TEXT, score INT);");
db.exec(conn, "INSERT INTO users (name, score) VALUES ('Alice', 100);");
var rows = db.query(conn, "SELECT id, name, score FROM users ORDER BY score DESC;");
var i = 0;
while (i < len(rows)) {
var row = rows[i];
print("User: " + row["name"] + ", Score: " + str(row["score"]));
i = i + 1;
}
var total = db.scalar(conn, "SELECT COUNT(*) FROM users;");
print("Total users: " + str(total));
db.close(conn);
} else {
print("Failed to connect to database");
}