Вопрос

Лучшие рекомендации по доступу к базам данных sqlite и манипулированию ими с помощью JavaScript.

Это было полезно?

Решение

Что ж, если вы работаете на клиентском JavaScript, я думаю, вам не повезет...браузеры, как правило, изолируют среду JavaScript, поэтому у вас нет доступа к компьютеру в каком-либо общем виде, например, к базе данных.

Если вы говорите о базе данных SQLite на стороне сервера, доступ к которой осуществляется со стороны клиента, вы могли бы настроить AJAX-решение, которое вызывает некоторый серверный код для доступа к ней.

Если вы говорите о Rhino или каком-либо другом серверном JavaScript, вам следует изучить доступ к API языка хостинга в SQLite (например, JDBC для Rhino).

Возможно, вы проясните свой вопрос немного подробнее ...?

Другие советы

Там есть проект под названием sql.js который является портом SQLite в JavaScript.

sql.js является портом SQLite на JavaScript путем компиляции кода SQLite C с помощью Emscripten.

Обзор решений javascript SQLite

В браузере

Если вы хотите получить доступ к базе данных SQLite из веб-браузера, у вас не так много решений.

sql.js

Библиотека SQLite C была портирован на javascript используя эмскриптен.Порт был запущен под названием sql.js автор: Алон Закай (который также является автором emscripten).Я являюсь текущим сопровождающим этой библиотеки.

API выглядит следующим образом:

<script src='js/sql.js'></script>
<script>
    //Create the database
    var db = new SQL.Database();
    // Run a query without reading the results
    db.run("CREATE TABLE test (col1, col2);");
    // Insert two rows: (1,111) and (2,222)
    db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]);

    // Prepare a statement
    var stmt = db.prepare("SELECT * FROM test WHERE a BETWEEN $start AND $end");
    stmt.getAsObject({$start:1, $end:1}); // {col1:1, col2:111}

    // Bind new values
    stmt.bind({$start:1, $end:2});
    while(stmt.step()) { //
        var row = stmt.getAsObject();
        // [...] do something with the row of result
    }
</script>

Веб - SQL

W3C начал работать над собственным API для выполнения SQL внутри браузера, называемым веб - sql.Пример использования этого API:

var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
  tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
});

Тем не менее, проект был реализован заброшенный.Таким образом, он не пользуется широкой поддержкой.Видишь: http://caniuse.com/sql-storage

В узле

Если вы пишете javascript на стороне клиента в node, у вас немного больше возможностей выбора.Видишь: https://www.npmjs.org/search ?q=sqlite .

узел-sqlite3

Если у вас есть набор инструментов для компиляции, и вас не волнует необходимость компиляции вашего приложения для разных платформ (или предназначенного только для одной платформы), я бы посоветовал вам использовать node-sqlite3.Это быстро (намного быстрее, чем sql.js), имеет полный API и хорошую документацию.Ниже приведен пример API:

var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');

db.serialize(function() {
  db.run("CREATE TABLE lorem (info TEXT)");

  var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
  for (var i = 0; i < 10; i++) {
      stmt.run("Ipsum " + i);
  }
  stmt.finalize();

  db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
      console.log(row.id + ": " + row.info);
  });
});

db.close();

sql.js

Да, снова. sql.js может быть использован из узла.Это решение, если вам нужно чистое приложение на javascript.Однако это будет медленнее, чем предыдущее решение.

Вот пример того, как использовать sql.js из узла:

var fs = require('fs');
var SQL = require('sql.js');
var filebuffer = fs.readFileSync('test.sqlite');

db.run("INSERT INTO test VALUES (?,?,?)", [1, 'hello', true]);  -- corrected INT to INTO


var data = db.export();
var buffer = new Buffer(data);
fs.writeFileSync("filename.sqlite", buffer);

Механизмы Google имеет встроенную базу данных sqlite, но вам нужно убедиться, что люди установили ее, если вы планируете полагаться на нее.

В зависимости от ваших обстоятельств вы можете принудительно выполнить установку, в противном случае вы должны относиться к ней как к приятной, но с постепенным ухудшением качества, чтобы сайт продолжал работать, даже если он не установлен.

Если вы хотите получить доступ к базам данных SQLite в браузере (ie.на стороне клиента) для его поддержки вам понадобится ваш браузер.Вы можете сделать это с помощью SpiderApe http://spiderape.sourceforge.net/plugins/sqlite/ который предполагает, что браузер основан на Mozilla (ie.с поддержкой SQLite).Вам все равно нужно будет разрешить доступ к базовым библиотекам ( http://www.mozilla.org/projects/security/components/signed-scripts.html )

Если вы ищете серверный доступ из программ Javascript к базам данных SQLite, есть несколько вариантов:JSDB - это один из них http://www.jsdb.org/ ;JSEXT другой http://jsext.sourceforge.net/ ;и jslibs другой http://code.google.com/p/jslibs/

-- МВ

Тот Самый sql.js библиотека позволит вам вызывать SQL-запросы на стороне клиента.с помощью этой библиотеки вы можете легко передавать все данные между сервером и клиентом, вызывая .open(data) и .exportData() .это очень удобно.

кроме того, HTML5 имеет возможности хранения, но как новый технологический стандарт, вы не можете предполагать, что все клиенты будут поддерживать это.

Газонный стул это очень хороший вариант, если вы не зациклены на SQL, так как он дает простой в использовании подход ключ / значение.эти две библиотеки представляют собой комплексное решение для работы с базой данных sql на стороне клиента.

Еще одной хорошей библиотекой для хранения данных является jstorage - хранилище.его можно использовать для сбережения данных "sql.js" на клиенте.Он поддерживает большое разнообразие браузеров (включая мобильные браузеры, а также IE7 и IE7-ю!) и даже выдерживает сбои браузера.

Если вы запускаете привилегированные скрипты в Windows (либо в HTA, либо в WSH), вы можете получить доступ к источникам данных ODBC, используя ActiveXObject "ADODB.Recordset".

Если вы говорите о клиентской части веб-страницы, то вышеприведенный пост повторяет:Google Gears - ваш лучший выбор.

Вы можете выполнить это с помощью XUL API в стеке mozilla firefox.Вот несколько руководств по этому поводу:http://www.arashkarimzadeh.com/articles/10-xul/25-sqlite-api-for-xul-application-using-javascript.html

На компьютере Mac?Взгляните на JSTalk Гаса Мюллера, который использует Scripting Bridge и JSCocoa Патрика Гейлера.

Здесь Гас конкретно рассказывает о поддержке Sqlite: http://gusmueller.com/blog/archives/2009/03/jstalk_extras.html ... отлично работает.

Джейдата также предоставляет инструментарий для работы с SQLite / WebSQL с использованием JavaScript.Однако для запуска вам понадобится браузер, Rine или Nodejs.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top