REST APIからデータを消費するAPPの作成をほぼ終了します。 このアプリケーションは、CLIENT、ORDERS、およびPRODUCTSと連携して、REST APIからそれらを呼び出し、それらをローカルデータベース(SQLite)に挿入します。角2(イオン性)SQLite一度に何千ものアイテムを挿入する
アレイに入ってくるデータを効率よく保存する方法が必要なのでしょうか? つまり、配列の配列内に48,000のクライアントを持って来るのは初めてです。 問題は、ITEMで項目を挿入すると、アプリケーションにラベルが付けられているか、または処理に時間がかかることです。
これを行う最も効率的な方法は何かを知る必要があります。
最高ランクに基づいて次回の同期をとるため、私はそれ以降に行います(更新されたものまたは新しいもののみを持ちます)。
'INSERT OR REPLACE INTO orders (id, C_IDPEDIDO, N_NROPEDIDO, C_CLIENTE, N_NROAUTORIZACION, FH_AUTORIZACION, FH_BAJA, C_IDFACTNOTA, N_ESTADO, X_OBSERVACION, FH_INCORPORACION, ORA_ROWSCN, state, error) VALUES ((SELECT id FROM orders WHERE C_IDPEDIDO=?), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
しかし、一つ一つを挿入するとき、私は、述べたように、またはそれがマークされているかがかかる:
クエリがあります。
「Observable.ForkJoin」と「約束」、私は(最後に)それらを待つこれらのクエリを返すと、私はすべて終了したときに、私は同期が私が来たクライアントを経るここ
を終え与えます「クライアント:[]」でWebサービスから
コードは次のとおりです。
let promises = [];
for(let key = 0; key < clients.length; key++) {
// Insertamos el cliente.
promises.push(this.SQLite_query('INSERT OR REPLACE INTO clients (id, C_CLIENTE, X_APELLIDOCLI, X_NOMBRES, X_DOMICCLI, X_LOCALIDAD, X_PROVINCIA, X_NROCUIT, X_CONDICIONIMP, ORA_ROWSCN) VALUES ((SELECT id FROM clients WHERE C_CLIENTE=?), ?, ?, ?, ?, ?, ?, ?, ?, ?)', [clients[key]['C_CLIENTE'], clients[key]['C_CLIENTE'], clients[key]['X_APELLIDOCLI'], clients[key]['X_NOMBRES'], clients[key]['X_DOMICCLI'], clients[key]['X_LOCALIDAD'], clients[key]['X_PROVINCIA'], clients[key]['X_NROCUIT'], clients[key]['X_CONDICIONIMP'], clients[key]['ORA_ROWSCN']]).then((data) => {
// "{"rows":{"length":0},"rowsAffected":1,"insertId":1}
if(data['rowsAffected']) {
// Si se insertó.
ret['inserted'].push(clients[key]['C_CLIENTE']);
} else {
// Si no se insertó, lo agregamos a los existentes.
ret['existents'].push(clients[key]['C_CLIENTE']);
}
}, (error) => {
// Si hubo un error, lo agregamos a errores.
ret['error'].push(clients[key]['C_CLIENTE']);
}));
}
Observable.forkJoin(promises).subscribe((data) => {
// When all the promises are over, we return the data.
resolve(ret)
});
私は私の時間を食べているので、私はそれを解決することができるようにする必要がありますしてください。
私はそれを完成させることができない唯一の部分で立ち往生しています。
もちろん、ありがとうございます!
は非常くらいありがとう!!!の私はそれを実装するつもりですし、私はあなたに教えてあげる! –