メタ情報からオブジェクトストアを作成 |
indexedDB |
function metaTableDefine(dbName)
{
let version = 1;
const tableDef =
{
table: "t1",
fields: ["f1", "f2", "f3"],
primaryKey: "f1",
indexes: [
{ name: "f2_index", field: "f2", unique: false },
{ name: "f3_index", field: "f3", unique: true }
]
};
const db = await openDatabase(dbName, version, (db) =>
{
if (db.objectStoreNames.contains(tableDef.table))
{
db.deleteObjectStore(tableDef.table);
}
const store = db.createObjectStore(tableDef.table, { keyPath: tableDef.primaryKey });
tableDef.indexes.forEach(index =>
{
store.createIndex(index.name, index.field, { unique: index.unique });
});
});
}
function openDatabase(dbName, version, upgrade)
{
return new Promise((resolve, reject) =>
{
const req = indexedDB.open(dbName, version);
req.onupgradeneeded = (event) =>
{
const db = event.target.result;
upgrade?.(db, event);
};
req.onsuccess = (event) =>
{
resolve(event.target.result);
};
req.onerror = () => reject(req.error);
});
}
metaTableDefine("sampleDB");
| ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |