Skip to content

fuse-modules/fuse-sqlite

 
 

Repository files navigation

Fuse SQLite bindings

NPM package License: MIT

Library to use SQLite in Fuse.

Currently supports ios, android and dotnet (Fuse Preview).

Issues, feature requests and pull requests are welcome.

Install

$ npm install fuse-sqlite

Using fusepm (legacy)

$ fusepm install https://github.com/fuse-open/fuse-sqlite

Usage

Check out the example app for a complete project using TypeScript.

UX

<SQLite ux:Global="SQLite" />`

JS or TypeScript

import sqlite from "SQLite";
const db = sqlite.open("file.sqlite");
db.execute("create table if not exists ids (id integer primary key)");
db.execute("insert into ids values (?)", 2);
const r = db.query("select * from ids");
console.log(JSON.stringify(r));

It returns an array:

[
    {"field1": "value1", "field2": "value2"},
    {"field1": "value1", "field2": "value2"}
]

API

import

import sqlite from "SQLite";

require (legacy)

const sqlite = require('SQLite');

sqlite.open

Opens a file that contains a SQLite database

const db = sqlite.open(filename);

sqlite.openFromBundle

Opens a file that contains a SQLite database, possibly from the bundle

const db = sqlite.openFromBundle(filename);

And in the unoproj:

"Packages": [
  "Fuse",
  "FuseJS",
  "SQLite"
],
"Includes": [
  "*.ts",
  "*.ux",
  "bundle.sqlite:Bundle"
]

db.execute

Executes a query. Does not return anything.

db.execute(sql_statement);
db.execute(sql_statement, var1, var2, var3);

db.query

Executes a query. Returns an array of hashes with the result.

const result = db.query(sql_statement);
const result = db.query(sql_statement, var1, var2, var3);

db.prepare

Prepares a query. Returns a prepared statement.

const statement = db.prepare(sql_statement);
statement.execute(var1, var2, var3);

db.close

Closes the database.

db.close();

Possible future functionality

  • Cursor support
  • Async support
  • Bundled pre-made databases

Known Issues

  • Error messages is a bit different between the targets

Windows

Troubleshooting

Languages

  • Uno 75.4%
  • C# 16.4%
  • TypeScript 6.9%
  • Shell 1.3%