JavaScript sqlite

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

Вероятно, вам следует указать, какую среду вы имели в виду. Единственная среда, которую я знаю, которая даже поддерживает взаимодействие JavaScript <-> Sqlite, - это Adobe AIR.

Theo 15.09.2008 11:46

Это старый пост, но я хотел добавить, что в настоящее время браузеры HTML5 имеют поддержку базы данных SQL через SQLite.

Ken Liu 17.03.2010 03:07

@Ken Liu - Совершенно верно! Это был смысл моего комментария ниже.

Jay Godse 01.06.2010 07:28

Возможный дубликат Можно ли получить доступ к базе данных SQLite из javascript?

Flimzy 15.02.2016 15:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
45
4
76 730
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Ответ принят как подходящий

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

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

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

Возможно, уточнить ваш вопрос еще немного ...?

"Может быть, уточнить ваш вопрос еще немного ...?" Вы абсолютно правы - но тогда ваши всеобъемлющие ответы проясняют для меня как мое невежество, так и широту полного понимания. Спасибо.

benphane 18.09.2008 12:06

Если бы я указал, что меня сначала интересуют данные sqlite Firefox 3.xx, я, возможно, не получил бы столь полезного подробного разъяснения.

benphane 18.09.2008 12:10

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

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

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

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

Если вы хотите получить доступ к базам данных SQLite в браузере (то есть на стороне клиента), вам понадобится ваш браузер для его поддержки. Вы можете сделать это с помощью SpiderApe http://spiderape.sourceforge.net/plugins/sqlite/, который предполагает, что браузер основан на Mozilla (т.е. с поддержкой 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/

- М.В.

Столько полезных ответов. Спасибо. После публикации здесь я нашел developer.mozilla.org/en/Storage. Я ценю, что вы помогли мне понять масштабы настоящего понимания.

benphane 18.09.2008 12:48

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

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

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

JayData также предоставляет набор инструментов для работы с sqLite / webSql с использованием JavaScript. Однако для запуска вам понадобится браузер, Rhine или Nodejs.

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

sql.js is a port of SQLite to JavaScript, by compiling the SQLite C code with Emscripten.

Привет, @Juicy Scripter, я хочу получить доступ к существующей базе данных sqlite из браузера IE (версия IE 7-10). не могли бы вы помочь мне в этом .. Я пробовал sql.js, но, похоже, он не поддерживает IE версии 7 и 8.

ifti 19.12.2014 22:17

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

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

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

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

Привет @ d.popov, я хочу получить доступ к существующей базе данных sqlite из браузера IE (версия IE 7-10). не могли бы вы помочь мне в этом .. Я пробовал sql.js, но, похоже, он не поддерживает IE версии 7 и 8.

ifti 19.12.2014 22:15

вы пробовали jStorage? jstorage.info/#download

d.popov 23.12.2014 15:11

Панорама javascript-решений SQLite

В браузере

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

sql.js

Библиотека SQLite C была перенесен на javascript с использованием emscripten. Порт был запущен под именем 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 в узле, у вас будет немного больше вариантов. См .: 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.info(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);

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