web-dev-qa-db-fra.com

Est-il possible d'accéder à une base de données SQLite à partir de JavaScript?

J'ai un ensemble de fichiers HTML et une base de données SQLite, auxquels j'aimerais accéder à partir du navigateur, en utilisant le schéma fichier: //. Est-il possible d'accéder à la base de données et de créer des requêtes (et des tables) à l'aide de JavaScript?

80
Pal Szasz

En fait, la réponse est oui. Voici un exemple comment vous pouvez faire cela: http://html5doctor.com/introducing-web-sql-databases/

Le problème, c’est que les navigateurs ne prennent en charge que très peu de ressources.

Plus d'informations ici IndexedDB HTML5, base de données Web SQL et guerres du navigateur

PS: Comme @Christoph l'a dit Web SQL n'est plus en maintenance active et le groupe de travail Applications Web n'a pas l'intention de le maintenir alors regardez ici https://developer.mozilla.org/en-US/docs/IndexedDB .


EDIT

Comme @clentfort l'a dit, vous pouvez accéder à la base de données SQLite avec JavaScript côté client en utilisant SQL.js.

37
Minko Gechev

Vous pouvez utiliser SQL.js qui est la lib SQLite compilée en JavaScript et stocker la base de données dans le stockage local introduit dans HTML5 .

34
clentfort

Réponse à jour

Mon fork de sql.js a maintenant été fusionné dans la version originale, sur le dépôt de kriken .

Le bonne documentation est également disponible sur le dépôt d'origine.

Réponse originale (obsolète)

Vous devez utiliser le version plus récente de sql.js . C'est un port de sqlite 3.8, a un bonne documentation et est activement maintenu (par moi-même). Il prend en charge les instructions préparées et le type de données BLOB.

19
lovasoa

L'une des fonctionnalités les plus intéressantes de HTML5 est la possibilité de stocker des données localement et de permettre à l'application de s'exécuter hors ligne. Trois API différentes traitent de ces fonctionnalités. Le choix de l'une d'entre elles dépend de ce que vous voulez exactement faire des données que vous prévoyez de stocker localement:

  1. Stockage Web: Pour le stockage local de base avec des paires clé/valeur
  2. Stockage hors ligne: Utilise un manifeste pour mettre en cache des fichiers entiers pour une utilisation hors connexion
  3. Base de données Web: Pour le stockage de base de données relationnelle

Pour plus de références, voir Présentation des API de stockage HTML5

Et comment utiliser

http://cookbooks.Adobe.com/post_Store_data_in_the_HTML5_SQLite_database-19115.html

4
Talha

IMHO, le meilleur moyen est d'appeler Python en utilisant POST via AJAX et de faire tout ce que vous devez faire avec la base de données dans Python, puis de renvoyer le résultat au javascript. Le support json et sqlite dans Python est génial et il est intégré à 100% dans les versions même les plus récentes de Python. Il n'y a donc pas d'installation "installez ceci, installez-le" bien. En Python:

import sqlite3
import json

... c'est tout ce dont vous avez besoin. Cela fait partie de chaque distribution Python.

@Sedrick Jefferson a demandé des exemples, alors (un peu tardivement), j'ai écrit un allers-retours autonomes entre Javascript et Python ici.

4
fyngyrz

Qu'en est-il d'utiliser quelque chose comme PouchDB? http://pouchdb.com/

2
theamoeba