Вставка нескольких записей в Sqlite с использованием React Native - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь вставить несколько строк в React Native, используя SQLite.

это код:

rows = responseJson.rows;

     for (i = 0; i < rows.length; i++) {

        row=rows[i];
        query = `insert into ComuniUserAccountSync values (
            ${row.IDComuniUserAccountSync},
            ${row.IdAzienda},
            ${row.IdComune},
            ${row.IdUserAccount},
            '${row.DescrizioneComune}',
            '${row.DateLastUpdateMaster}'
        )`;


        db.transaction(
            tx => {
                tx.executeSql(query, [], (a,b) =>
                    console.log("!OK!!", JSON.stringify(b)), (a, b) =>
                        console.log("!ERROR!!", a, b)
                )

            }
       );

     }

, но в результате я вставляю только последнюю строку, много раз! Это вывод с

db.transaction(
        tx => {
            tx.executeSql("select IDComuniUserAccountSync from ComuniUserAccountSync", [], (a,b) =>
            console.log("!OK!", JSON.stringify(b)), (a,b) =>
            console.log("!ERROR!!", JSON.stringify(b))
    );
        }
    );

! OK! { "RowsAffected": 0 "строки": { "_ массив": [{ "IDComuniUserAccountSync": 72}, { "IDComuniUserAccountSync": 72}, { "IDComuniUserAccountSync": 72}, { "IDComuniUserAccountSync": 72}, {"IDComuniUserAccountSync": 72}, .......

ЛЮБАЯ ПОМОЩЬ ?? Max

1 Ответ

0 голосов
/ 05 ноября 2019
insertCategories(arrCateData){


  let keys = Object.keys(arrCateData[0])

  let arrValues = []

    var len = arrCateData.length;



    for (let i = 0; i < len; i++) {
      arrCateData[i].image = `"${arrCateData[i].image}"`;
      arrCateData[i].thumbnail = `"${arrCateData[i].thumbnail}"`;
      arrCateData[i].name = `"${arrCateData[i].name}"`;
      arrCateData[i].path = `"${arrCateData[i].path}"`;
      arrValues.push("(" + Object.values(arrCateData[i]) +")");
    }

    // console.log(arrValues)


  return new Promise((resolve) => {
    this.initDB().then((db) => {
      db.transaction((tx) => {
        tx.executeSql("INSERT INTO category ("+ keys + ") VALUES " + String(arrValues)).then(([tx, results]) => {
          resolve(results);
        });
      }).then((result) => {
        this.closeDatabase(db);
      }).catch((err) => {
        console.log(err);
      });
    }).catch((err) => {
      console.log(err);
    });
  });  

}

этот код может помочь вам, я просто передам свой массив в функцию, и он будет вставлять данные изменения данных в зависимости от ваших требований

...