it-swarm-id.com

JavaScript sqlite

Rekomendasi terbaik untuk mengakses dan memanipulasi database sqlite dari JavaScript.

44
benphane

Nah, jika Anda bekerja pada sisi klien JavaScript, saya pikir Anda akan kurang beruntung ... browser cenderung mengamplas lingkungan JavaScript sehingga Anda tidak memiliki akses ke mesin dalam segala jenis kapasitas umum seperti mengakses database.

Jika Anda berbicara tentang DB SQLite di ujung server yang diakses dari sisi klien, Anda bisa mengatur solusi AJAX yang memanggil beberapa kode sisi server untuk mengaksesnya.

Jika Anda berbicara tentang Badak atau JavaScript sisi server lainnya, Anda harus melihat akses API bahasa Host ke SQLite (seperti JDBC untuk Badak).

Mungkin sedikit memperjelas pertanyaan Anda ...?

11
Mike Stone

Ada proyek yang disebut sql.js yang merupakan port dari SQLite dalam JavaScript.

sql.js adalah port dari SQLite ke JavaScript, dengan menyusun kode SQLite C dengan Emscripten.

26
Juicy Scripter

Panorama solusi javascript SQLite

Di browser

Jika Anda ingin mengakses database SQLite dari dalam browser web, Anda tidak memiliki banyak solusi.

sql.js

Pustaka SQLite C telah porting ke javascript menggunakan emscripten . Port dimulai dengan nama sql.js oleh Alon Zakai (yang juga penulis emscripten). Saya adalah pengelola perpustakaan ini saat ini.

API berjalan seperti:

<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 web

W3C telah mulai bekerja pada API asli untuk mengeksekusi SQL di dalam browser, yang disebut web sql. Contoh penggunaan API itu:

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")');
});

Namun, proyek telah ditinggalkan. Jadi itu tidak didukung secara luas. Lihat: http://caniuse.com/sql-storage

Dalam simpul

Jika Anda menulis javascript sisi klien, dalam simpul, Anda memiliki sedikit lebih banyak pilihan. Lihat: https://www.npmjs.org/search?q=sqlite .

node-sqlite3

Jika Anda memiliki kompilasi toolchain, dan tidak peduli harus mengkompilasi aplikasi Anda untuk platform yang berbeda (atau hanya menargetkan satu platform), saya akan menyarankan Anda menggunakan node-sqlite3 . Ini cepat (jauh lebih cepat daripada sql.js), memiliki API lengkap dan dokumentasi yang baik. Contoh dari API adalah sebagai berikut:

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

Ya lagi sql.js dapat digunakan dari node . Ini adalah solusinya jika Anda menginginkan aplikasi javascript murni. Namun, ini akan lebih lambat dari solusi sebelumnya.

Berikut adalah contoh cara menggunakan sql.js dari node:

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);
17
lovasoa

Google Gears memiliki basis data sqlite bawaan - tetapi Anda harus memastikan bahwa orang-orang menginstalnya jika Anda berencana untuk mengandalkannya.

Tergantung pada keadaan Anda, Anda mungkin dapat menegakkan instalasi, jika tidak Anda harus memperlakukannya sebagai Nice-to-have, tetapi memiliki degradasi yang anggun sehingga situs masih berfungsi jika tidak diinstal.

11
Cebjyre

Jika Anda ingin mengakses basis data SQLite di peramban (mis. Sisi klien), Anda memerlukan peramban untuk mendukungnya. Anda dapat melakukannya dengan SpiderApe http://spiderape.sourceforge.net/plugins/sqlite/ yang mengasumsikan browser berbasis Mozilla (mis. Dengan dukungan SQLite). Anda masih perlu mengizinkan akses ke perpustakaan yang mendasarinya ( http://www.mozilla.org/projects/security/components/signed-scripts.html )

Jika Anda mencari akses di sisi server dari program Javascript ke database SQLite ada beberapa opsi: JSDB adalah satu http://www.jsdb.org/ ; JSEXT lain http://jsext.sourceforge.net/ ; dan jslibs lainnya http://code.google.com/p/jslibs/

- MV

10
user7878

Pustaka sql.js akan memungkinkan Anda untuk memanggil kueri SQL di sisi klien. dengan libray itu, Anda dapat dengan mudah melakukan streaming seluruh data antara server dan klien dengan memanggil .open (data) dan .exportData (). ini sangat berguna.

selain itu HTML5 memiliki kemampuan penyimpanan , tetapi sebagai standar teknologi baru, Anda tidak dapat berasumsi bahwa semua klien akan mendukungnya.

Lawnchair adalah pilihan yang sangat baik jika Anda tidak terjebak dengan SQL, karena memberikan pendekatan kunci/nilai yang mudah digunakan. dua perpustakaan ini membuat solusi lengkap untuk bekerja dengan database sql di sisi klien.

Pustaka penyimpanan lain yang bagus adalah jstorage . itu dapat digunakan untuk menghemat data dari "sql.js" pada klien. Ini mendukung berbagai macam browser (termasuk browser mobile, dan IE7 dan IE7!), Dan bahkan selamat dari crash browser.

3
d.popov

Anda dapat melakukannya dengan XUL API pada mozilla firefox stack. Ini beberapa tutorial tentang hal itu: http://www.arashkarimzadeh.com/articles/10-xul/25-sqlite-api-for-xul-application-using-javascript.html

2
Brain90

Jika Anda menjalankan skrip istimewa di Windows (baik dalam HTA atau WSH), Anda dapat mengakses sumber data ODBC menggunakan "ActiveXObject" ADODB.Recordset ".

Jika Anda berbicara tentang sisi klien di halaman web, posting di atas: Google Gears adalah taruhan terbaik Anda.

2
Joel Anair

Di Mac? Lihatlah Gus Meuller's JSTalk, yang memanfaatkan Scripting Bridge dan Patrick Geiller JSCocoa.

Gus berbicara secara khusus tentang dukungan Sqlite di sini: http://gusmueller.com/blog/archives/2009/03/jstalk_extras.html ... berfungsi dengan baik.

0
jcburns

JayData juga menyediakan toolkit untuk bekerja dengan sqLite/webSql menggunakan JavaScript. Anda akan memerlukan browser, Rhine atau Nodejs untuk menjalankannya.

0