Подтвердить что ты не робот

Есть ли библиотека Javascript для localStorage для эмуляции SQLite

У меня есть приложение, которое использует SQLite для хранения. Нам нужно изменить его, чтобы он работал с Firefox и другими браузерами.

Кажется, что выбор LocalStorage является выбором. Однако localStorage не предлагает более сложные функциональные возможности sql (например, OrderBy, GroupBy, объединения таблиц и т.д.).

Кто-нибудь знает о существующей библиотеке Javascript, которая будет работать с localStorage и заставить ее вести себя как SQL? -Спасибо

4b9b3361

Ответ 1

Вы можете использовать одну из реализаций javascript linq. Они получают свои данные из простых javascript-объектов/массивов, поэтому они должны взаимодействовать с localstorage в значительной степени из-за торта.

http://jslinq.codeplex.com/
http://linqjs.codeplex.com/
или даже http://www.thomasfrank.se/sqlike.html

онлайн-демонстрация для них: http://secretgeek.net/JsLinq/ (обратите внимание на опции в левом верхнем углу)

Я не уверен в аспектах вставки/обновления, но вы можете с уверенностью провести с ними интересные запросы.

Ответ 2

Попробуйте sql.js. Это прямой порт SQLite от нативного C до чистого javascript.

Ответ 3

Если вы ищете альтернативную SQLLite альтернативную базу данных HTML5/JavaScript: SequelSphere

SequelSphere - это библиотека Javascript, которая работает во всех современных браузерах и платформах, и сохраняет свои данные в IndexedDB и LocalStorage (в зависимости от того, что поддерживает браузер). Он легко интегрируется с любой сторонней структурой RIA и предоставляет "отслеживающие изменения", чтобы помочь в синхронизации данных.

Поскольку вы спросили о сложных возможностях SELECT, на веб-сайте SequelSphere можно найти ниже: Top 9 Cool SequelSphere Features

Самая впечатляющая особенность SequelSphere должна быть революционный синтаксический анализ SQL и механизм выполнения. Он обрабатывает все нормальные SELECT и выражения, а затем выходит за рамки обработки LEFT, RIGHT и FULL. Он не только может похвастаться неограниченным вложенность подзапросов, он обрабатывает их в каждом главном предложении (SELECT, FROM, WHERE, JOIN, ON, HAVING, даже GROUP BY!). Говоря о группировании, он также обрабатывает группировки наборов, rollup, куб и общую совокупность функции. Он даже изящно обрабатывает сложные условные выражения например:

(a, b) не в ((1, 2), (3, 4), (выберите c, d из вкладки))

Добавьте в это возможность AT RUNTIME для смешивания в пользовательских, определенных пользователем функции и сторонние таблицы (две интересные функции в своих справа), а механизм SQL поистине необычен. Никакой другой механизм SQL может делать это, не говоря уже о том, чтобы сделать это на 100% в JavaScript во всех основные браузеры и платформы. И, не забывайте, что он делает все это с невероятно быстрой скоростью: синтаксический анализ, планирование и оптимизация всех возникающая субмиллисекунда.

Для полного раскрытия: я являюсь частью SequelSphere, и продукт потрясающий.

Ответ 4

Попробуйте alasql.js. Это база данных SQL, написанная на чистом JavaScript. Даже у него нет функциональности для работы с locasStorage, но вы можете легко сохранять и восстанавливать все данные, которые вам нужны до и после сеанса или изменений.

Вот пример использования Alasql с localStorage:

// Create database and table structure
var db = new alasql.Database();
db.exec('CREATE TABLE students (studentid INT, school STRING)');

// Load table data from localStorage if it exists or create new table
if(localStorage['students']) {
    db.tables.students.data = JSON.parse(localStorage['students']);
} else {
    db.tables.students.data = [
       {studentid: 55, school: 'abc'},
       {studentid: 56, school: 'klm'},
       {studentid: 57, school: 'nyz'}
    ];
    localStorage['students'] = JSON.stringify(db.tables.students.data);
};

// Add new student and save database
db.tables.students.data.push({student: 100, school:'qwe'}); 
localStorage['students'] = JSON.stringify(db.tables.students.data);

// SQL-query
console.log(db.exec("SELECT * FROM students WHERE school > 'ght'"));

Этот пример в Fiddle.

Ответ 5

Попробуйте мою библиотеку с открытым исходным кодом https://bitbucket.org/ytkyaw/ydn-db/wiki/Home Она имеет IndexedDB, WebSQL и веб-хранилище. Предоставляются богатые параметры запроса. Удивительно проста в использовании.