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);
            }
        }
Beispiel #2
0
        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);
        }