public void open( JSValue config, Action <int> onSuccess, Action <string> onError ) { try { Initialise(); IReadOnlyDictionary <string, JSValue> cfg = config.To <IReadOnlyDictionary <string, JSValue> >(); string dbname = cfg.ContainsKey("name") ? cfg["name"].To <string>() : ""; string opendbname = ApplicationData.Current.LocalFolder.Path + "\\" + dbname; string key = cfg.ContainsKey("key") ? cfg["key"].To <string>() : null; var db = new Database(opendbname, key); if (version == null) { strdelegate_exec handler = handleRetrievedVersion; string errorMessage; raw.sqlite3_exec(db.database, "SELECT sqlite_version() || ' (' || sqlite_source_id() || ')' as version", handler, null, out errorMessage); } databases[dbname] = db; databaseKeys[dbname] = key; onSuccess(0); } catch (Exception e) { onError(e.Message); } }
public static void exec(this sqlite3 db, string sql, strdelegate_exec callback, object user_data, out string errMsg) { int rc = raw.sqlite3_exec(db, sql, callback, user_data, out errMsg); check_ok(rc); }