IndexedDb上的WebSQL语法

时间:2014-02-13 14:12:28

标签: javascript html5 syntax indexeddb web-sql

我有一个使用WebSQL的应用程序。我也想支持IndexedDB(对于没有WebSql支持的浏览器)。是否有任何使用sql语法但在后台使用indexedDB / LocalStorage的库?

我不想改变我的所有查询和功能。

我找到的所有库都使用IndexedDb语法并支持WebSql。 (不是我需要的)。

谢谢:)

2 个答案:

答案 0 :(得分:4)

您可以尝试Alasql JavaScript SQL数据库库。它支持所有重要的SQL 语句也可以使用SQL语法与IndexedDB一起使用。

以下是一个例子:

<script src='alasql.min.js'></script>
<script>
    var cityData = [{city:"Redmond", population:57530},
        {city:"Atlanta",population:447841},
        {city:"San Francisco", population:837442}];

    // Create IndexdDB database and fill it with data from array
    alasql('CREATE INDEXEDDB DATABASE IF NOT EXISTS geo;\
        ATTACH INDEXEDDB DATABASE geo; \
        USE geo; \
        DROP TABLE IF EXISTS cities; \
        CREATE TABLE cities; \
        SELECT * INTO cities FROM ?', [cityData], function(){

        // Select data from IndexedDB
        alasql('SELECT COLUMN * FROM cities WHERE population > 100000 ORDER BY city DESC',
           [],function(res){
                document.write('Big cities: ', res.join(','));
        });
    });
</script>

您可以在jsFiddle

中使用此示例

答案 1 :(得分:2)

您可以使用我的库ydn-db进行非常简单的SQL查询,该查询适用于任何Web数据库。

对于几乎完全支持SQL,请查看商业SequelSphere js库http://www.sequelsphere.com/docs/latest/doc/Supported%20SQL.html。不幸的是,查询执行目前在内存中。定价非常贪婪。