0

我们有一个使用 VSNomad(通过 Phonegap)和 Sqlite 本地数据库的离线平板电脑应用程序。我注意到的一件事是,当我们在 iPad 上删除表中的所有数据并删除表(执行“应用程序重置”)时,它并没有反映出空间已被打开。

我遇到过用于 Sqlite 的“VACUUM”命令,但是我不确定如何/是否可以将其与我们的实现一起使用。当我尝试运行它时,我收到一条错误消息,提示无法在事务中运行。

以下是我们如何实施 http://docs.phonegap.com/en/2.7.0/cordova_storage_storage.md.html#Storage的示例

        app.shared.db().transaction(function (tx) {
            tx.executeSql('VACUUM', [], function (tx, results) {
                alert('done');
            }, function (tx, error) {
                alert('error');
                alert(error.message);
            });
        });

有可能像这样运行真空吗?

4

1 回答 1

0

我实现了你的代码,我得到:

E/SQLiteQuery(18724): exception: not an error; query: VACUUM

进一步搜索我发现在连接到数据库时无法给出vacuum sql命令,因此无法从打开的数据库和javascript或phonegap中的事务运行。只能从命令行给出。

但必须有另一种方式......(调查)。

现在我有一些关于数据库管理的建议:

于 2013-09-10T16:11:29.310 回答