Advertisement
L3V147H4N

sqlite

May 31st, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. import SQLite from 'react-native-sqlite-storage';
  4.  
  5. const
  6.   DB_NAME = 'sistarjsmobile',
  7.   DB_VERSION = '1.0',
  8.   DB_DISPLAY_NAME = 'SistarJS SQLite Database',
  9.   DB_SIZE = 200000;
  10.  
  11. var
  12.   db;
  13.  
  14. //SQLite.DEBUG(true);
  15. SQLite.enablePromise(true);
  16.  
  17. class SQLiteConn {
  18.   static openDatabase () {
  19.  
  20.     return new Promise((resolve, reject) => {
  21.       if (db) {
  22.         resolve(db);
  23.       } else {
  24.         SQLite.openDatabase(DB_NAME, DB_VERSION, DB_DISPLAY_NAME, DB_SIZE)
  25.           .then(database => {
  26.             db = database;
  27.             resolve(db);
  28.           })
  29.           .catch(err => {
  30.             reject(err);
  31.           });
  32.       }
  33.     });
  34.  
  35.   }
  36.  
  37.   static closeDatabase () {
  38.     return new Promise ((resolve, reject) => {
  39.       if (db) {
  40.         db.close()
  41.           .then(status => {
  42.             resolve(status);
  43.           })
  44.           .catch(err => {
  45.             reject(err);
  46.           })
  47.       } else {
  48.         resolve(false);
  49.       }
  50.     });
  51.   }
  52.  
  53.   static getInstance () {
  54.     return new Promise((resolve, reject) => {
  55.       if (db) {
  56.         resolve(db);
  57.       } else {
  58.         SQLiteConn.openDatabase()
  59.           .then(db => {
  60.             resolve(db);
  61.           })
  62.           .catch(err => {
  63.             reject(err);
  64.           });
  65.       }
  66.     });
  67.   }
  68.  
  69.   static select (query) {
  70.     return new Promise((resolve, reject) => {
  71.       if (db) {
  72.         execute();
  73.       } else {
  74.         SQLiteConn.openDatabase()
  75.           .then(() => {
  76.             execute();
  77.           })
  78.           .catch(err => {
  79.             reject(err);
  80.           })
  81.       }
  82.  
  83.       function execute () {
  84.         db.executeSql(query)
  85.           .then(res => {
  86.             var
  87.               records;
  88.  
  89.             records = SQLiteConn._getRows(res[0]);
  90.  
  91.             resolve(records);
  92.           })
  93.           .catch(err => {
  94.             reject (err);
  95.           });
  96.       }
  97.  
  98.     });
  99.   }
  100.  
  101.   static _getRows (res) {
  102.     var
  103.       rows = res.rows,
  104.       records = [];
  105.  
  106.     for (var i = 0; i < rows.length; i++) {
  107.       records.push(rows.item(i));
  108.     }
  109.  
  110.     return records;
  111.   }
  112. }
  113.  
  114. export default SQLiteConn;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement