いつもお世話になっております。
先日こちらで「indexedDB」という存在を教えていただき、使い始めていますが、
データ検索がうまくいかず「null」となってしまいます。
###前提・実現したいこと
商品マスタ照会(のようなもの)
###方法
商品マスタであるcsvファイルを取り込む
↓
配列に格納
↓
ユーザーがラベル1に商品コード1、
ラベル2に商品コード2を入力する
↓
ラベル1・ラベル2の商品コードの組み合わせがマスタにあれば
「OK」と表示する
###困っていること
openCursorの結果がnullになってしまう。
###該当のソースコード
(商品コード1はbarcode1、商品コード2はbarcode2、と表記)
function itemCheckTest(barcode1, barcode2) { //1.indexedDB関連オブジェクトの取得 var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB; var IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.mozIDBTransaction || window.msIDBTransaction; var IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.mozIDBKeyRange || window.msIDBKeyRange; var IDBCursor = window.IDBCursor || window.webkitIDBCursor; //2.indexedDBを開く var idbReq = indexedDB.open("ItemDB", 1); //3.DBの新規作成時、またはバージョン変更時に実行するコード idbReq.onupgradeneeded = function (event) { var db = event.target.result; var itemStore = db.createObjectStore("item", { keyPath: "item_id" }); itemStore.createIndex("bc", ["bc1","bc2"], { unique: false }); console.log("インデックス追加しました"); //データの追加 for (var i = 0, len = csvArray.length; i < len; i++) { var csvArrayIn = csvArray[i]; itemStore.add({ item_id: csvArrayIn[0], bc1:csvArrayIn[1], bc2:csvArrayIn[2]}); csvArrayIn = []; } console.log("データ追加しました"); } //4-1.DBオープン失敗時の処理 idbReq.onerror = function (event) { console.log("error"); }; //4-2.DBオープン成功時の処理 var db; idbReq.onsuccess = function (event) { db = idbReq.result; //読み書き権限付きで使用することを宣言 var transaction = db.transaction(["item"], "readwrite"); //各オブジェクトストアの取り出し var itemStore = transaction.objectStore("item"); var indexBc = itemStore.index("bc"); var range = IDBKeyRange.only([barcode1,barcode2]); indexBc.openCursor(range).onsuccess = function (event) { var cursor = event.target.result; if (cursor == null) { alertShowForBarcode0Event("NG:" + cursor); } else { console.log(cursor); alertShowForBarcode0Event("OK:" + cursor); cursor.continue(); } } } }
Chromeのツールで確かめたところ
インデックスはちゃんとはれているようです。(添付画像)
何かご教授いただければ幸いです。
宜しくお願い致します。