3

我正在尝试打开我使用 xhrrequest 下载并使用文件系统 API 在 Windows 8 操作系统上使用我的 google chrome 浏览器(版本 30.0.1599.101 m)存储并托管在 IIS8 中的数据库。

我可以在本地文件系统的用户文件夹中找到并打开该文件。我用 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;}

我收到错误“错误无法准备语句(1 没有这样的表:图像)(代码 5)”

我之前有过这个,我很确定 windows.openDatabase 命令找不到数据库,因此创建了一个空白数据库。

我想知道为什么 window.opendatabase 找不到数据库。我认为它在错误的地方寻找,但我如何将 window.opendatabase 指向正确的位置,作为浏览器的持久存储。我一直在寻找一段时间,我只能找到仅使用文件名的 window.opendatabase 示例。

感谢您的任何帮助。

4

1 回答 1

0

创建名为“images”的表 提示:db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS images (id UNIQUE, name, size)'[],function(result){}, function( tx, 错误){alert(error.message));
});

于 2015-04-28T21:55:56.660 回答