xhrrequest を使用してダウンロードし、ファイル システム API を使用して保存したデータベースを、Windows 8 OS で IIS8 でホストされている Google Chrome ブラウザー (バージョン 30.0.1599.101 m) で開こうとしています。
ローカル ファイル システムのユーザー フォルダでファイルを見つけて開くことができます。sqllitebrwser でファイルを開いたところ、データが存在するようです。ただし、フォルダ C:\Users\Ian\AppData\Local\Google\Chrome\User Data\Default\File System\001\p\00 には「00000000」という名前が付いています。私はそれが普通だと思いますか?
次のコードを使用すると、ファイル システムでファイルを見つけることができると表示されます。
function go() {
console.log('requesting file system...');
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
window.webkitStorageInfo.requestQuota(PERSISTENT, 10 * 1024 * 1024, function (grantedBytes) {
window.requestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler);
}, function (e) {
console.log('Error', e);
});;}
function onInitFs(fs) {
console.log('Opened file system: ' + fs.name);
fs.root.getFile('test.mbtiles', {create:false}, function (fileEntry) {
var fullPath = fileEntry.fullPath;
console.log('got file');
var db = openDB();
}, errorHandler);}
クエリを実行しようとすると。
function openDB(){
var shortName = 'test.mbtiles';
var version = '1.0';
var displayName = 'test.mbtiles';
var maxSize = 100000; // in bytes
var db = openDatabase(shortName, version, displayName, maxSize);
db.transaction(
function (transaction) {
transaction.executeSql('SELECT * FROM images', [], nullDataHandler, dbErrorHandler);
}
);
return db;}
「Error was could not prepare statement (1 no such table: images) (Code 5)」というエラーが表示されます。
私はこれを以前に持っていましたが、windows.openDatabaseコマンドがデータベースを見つけることができなかったため、空のデータベースを作成したと確信しています。
window.opendatabase がデータベースを見つけられなかった理由が不思議です。間違った場所を探していると思いますが、window.opendatabase をブラウザの PERSISTENT ストレージである正しい場所にポイントするにはどうすればよいですか。IVeはしばらく探していましたが、ファイル名のみを使用したwindow.opendatabaseの例しか見つかりませんでした。
助けてくれてありがとう。