json - 如何导出(转储)WebSQL 数据

标签 json html sqlite google-chrome-extension export

我正在开发一个使用 WebSQL 存储历史数据的 Chrome 扩展程序。 作为 WebSQL,数据库存储在客户端上。

我想添加一个选项来导出/导入此类数据,以便用户可以与其他用户或其他 PC 共享/使用此数据。

这些是我在仅客户端数据库上的第一步,所以我想知道如何做到这一点。 我正在考虑将数据库转换为一个巨大的 json 字符串,用户可以复制/粘贴但看起来不太用户友好。

有没有更好的解决方案?

最佳答案

我在 HTML5 database client 上得到了一个单表转储解决方案我前几天写过。

查看 http://html5db.desalasworks.com/script.js并向下滚动到 SqlClient.exportTable,这是一个需要扩展以涵盖整个数据库的示例。

步骤是:

第 1 步:创建架构:

SELECT sql FROM sqlite_master

第 2 步:获取表列表:

SELECT tbl_name from sqlite_master WHERE type = 'table'

第 3 步:遍历它们中的每一个并使用结果创建一个 INSERT 脚本

transaction.executeSql("SELECT * FROM " + _tbl_name + ";", [], 
    function(transaction, results) {
        if (results.rows) {
            for (var i = 0; i < results.rows.length; i++) {
                var row = results.rows.item(i);
                var _fields = [];
                var _values = [];
                for (col in row) {
                    _fields.push(col);
                    _values.push('"' + row[col] + '"');
                }
                _exportSql += ";\nINSERT INTO " + _tbl_name + "(" + _fields.join(",") + ") VALUES (" + _values.join(",") + ")";
            }
        }
    }
);

希望这是有用的。

2016 年 1 月更新 - 整个数据库导出

我有一个 JS websqldump 库,您也可以从 github 下载它。

这将导出整个 数据库。查看以下代码:

https://github.com/sdesalas/websqldump

用法如下

websqldump.export({
  database: 'NorthwindLite',
  success: function(sql) {alert(sql);}
});

关于json - 如何导出(转储)WebSQL 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3948279/

相关文章:

c# - 如何将 C# 日期时间变量转换为 NSDate?

html - 应用于我网页所有元素的 CSS 过滤器

html - 如何让 flex 元素占据这些空间?

c# - Xamarin.Android:SQLite-Net 扩展多对多 - 没有这样的表,NULL 集合

sql - 如何进行分组的多表SQL连接

android - Sqlite 查询以在 Android 上保留最后 5 次搜索

json - 从 Elixir ecto 关联创建 json

json - 如何解码从请求返回的 JSON?

json - 使用带有 MongoDB BSON 的 Aeson 的不支持类型 UString

javascript - jquery 有 .toggle() 的替代品吗