реагировать на родной sqlite: есть ли способ правильно удалить и обновить вставку? - PullRequest
0 голосов
/ 09 июля 2020

Есть ли способ выполнить правильную вставку, удаление и обновление с помощью SQLite в собственном реагировании? также я не уверен, как сделать openDatabase. похоже, что функции хороши, но он вообще не работает, и я должен знать, в чем причина этого. это дает мне undefined в строках вставок, и это неправильно, потому что у меня там много строк. это мой пример:

// import SQLite from 'react-native-sqlite-storage';

import { openDatabase } from 'react-native-sqlite-storage';

var db = openDatabase({ name: 'bob.db', createFromLocation: 1 });

// const db = SQLite.openDatabase('bob.db');
export const init = () => {
  const promise = new Promise((resolve, reject) => {
    db.transaction((tx) => {
      tx.executeSql(
        'CREATE TABLE IF NOT EXISTS tblDevices (Id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, SerialNum STRING (40), DeviceTestType INTEGER, ModelName VARCHAR (50), Merhav INTEGER, Yaam INTEGER, Ezor INTEGER, ActiveFrom DATETIME, ActiveTo DATETIME, CalibratedOn DATETIME, CreateTime DATETIME)',
        [],
        () => {
          resolve();
        },
        (_, err) => {
          reject(err);
        }
      );
    });
  });

  return promise;
};

export const insertDevices = (
  SerialNum,
  DeviceTestType,
  ModelName,
  Merhav,
  Yaam,
  Ezor,
  ActiveFrom,
  ActiveTo,
  CalibratedOn,
  CreateTime
) => {
  const promise = new Promise((resolve, reject) => {
    db.transaction((tx) => {
      tx.executeSql(
        `INSERT INTO tblDevices (SerialNum, DeviceTestType, ModelName, Merhav, Yaam, Ezor, ActiveFrom, ActiveTo, CalibratedOn, CreateTime) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
        [
          SerialNum,
          DeviceTestType,
          ModelName,
          Merhav,
          Yaam,
          Ezor,
          ActiveFrom,
          ActiveTo,
          CalibratedOn,
          CreateTime,
        ],
        (_, result) => {
          resolve(result);
        },
        (_, err) => {
          reject(err);
        }
      );
    });
  });
  return promise;
};

///////// FETCH /////////////

export const fetchDevices = () => {
  const promise = new Promise((resolve, reject) => {
    db.transaction((tx) => {
      tx.executeSql(
        'SELECT * FROM tblDevices',
        [],
        (_, result) => {
          resolve(result);
        },
        (_, err) => {
          reject(err);
        }
      );
    });
  });
  return promise;
};

///////////////// DELETE /////////////////////

export const deleteDevices = (Device) => {
  const promise = new Promise((resolve, reject) => {
    db.transaction((tx) => {
      tx.executeSql(
        `DELETE FROM tblDevices WHERE SerialNum = ?;`,
        [Device],
        (_, result) => {
          console.log('THE RESULT OF deleteDevice (DELETE TABLE)', result);
          resolve(result);
        },
        (_, err) => {
          console.log('THIS ERROR FROM deleteDevice promise', error);
          reject(err);
        }
      );
    });
  });
  return promise;
};


...