ионный - sqllite вставить несколько строк - PullRequest
0 голосов
/ 15 октября 2019

извините за основной вопрос, но я пытаюсь понять, что является лучшим способом сделать это. Я новичок в обещаниях и angular / typcript / ionic / javascript.

У меня есть массив, и я хочу вставить в таблицу SQLlite по одной строке для каждого элемента массива.

-------------------

РЕДАКТИРОВАТЬ мой код теперь выглядит так, и он вроде работает, но интересно, есть лилучший способ (наверняка)

for(var a=0; a<this.myarray.length; a++){

  this.insertquery(this.myarray[a].parameter1,this.myarray[a].parameter2);

}
insertquery(value1,value2){

   this.databaseObj.executeSql('INSERT INTO mytable(field1, field2) VALUES ("'+value1+'","'+value2+'")',[])
.then(() => {
    alert('Row Inserted!');
})
.catch(e => {
    alert('error ' + JSON.stringify(e))
});
}

-------------------------------------------

На данный момент мой код выглядит следующим образом

 for(var a=0; a<this.myarray.length; a++){
      this.databaseObj.executeSql('INSERT INTO mytable(filed1, field2) VALUES ('+this.myarray[a].property1+','+this.myarray[a].property2+');')

      .then(() => {
        alert('Row Inserted!');

      })
      .catch(e => {
        alert('error ' + JSON.stringify(e))
      });

    }

Помимо этогоэто не работает, потому что я не знаю, по какой причине :) Я уверен, что это неправильно с точки зрения "обещания", и должен быть лучший способ сделать это.

У вас есть какие-либонамек на то, как этого добиться?

Спасибо!

1 Ответ

0 голосов
/ 15 октября 2019

Вот пример того, как добавить данные в sqlite:

используйте следующую команду для вставки: INSERT OR IGNORE INTO Таблица

   const readline = require('readline');
    const fs = require('fs');
    const sqlite3 = require('sqlite3').verbose();

    let db;

    // database is not existing
        console.log('open database and create table');
        db = new sqlite3.Database('./event.db',() => {
          db.run('CREATE TABLE logTable(logfile TEXT,logdate TEXT,referto TEXT, area TEXT,status TEXT,action TEXT)',() => {
    var res = ['mylog.txt','03.10.2018','m1','Area1','ok','Load']
   // map fields to entry
      entryDate = '-';
      entry.logfile = res[0];
      entry.logdate = res[1];

      entry.action = res[5]; 
      entry.area = res[2];
      entry.referto = res[3];
      entry.status = res[4];


    db.run("INSERT OR IGNORE INTO logTable (logfile, logdate, referto, area, status, action) VALUES (?,?,?,?,?,?)",
     [entry["logfile"], entry["logdate"], entry["referto"], entry["area"], entry["status"], entry["action"]], function(err) {
      if (err) {
        return console.log(err.message);
      } else {
          db.close();
      }
      // get the last insert id
      console.log(`A row has been inserted with rowid ${this.lastID}`);
          });

см. Также здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...