क्या जावास्क्रिप्ट से SQLite डेटाबेस तक पहुँच संभव है?


97

मेरे पास HTML फ़ाइलों और SQLite डेटाबेस का एक सेट है, जिसे मैं फ़ाइल: // योजना का उपयोग करके ब्राउज़र से एक्सेस करना चाहूंगा। क्या डेटाबेस का उपयोग करना और जावास्क्रिप्ट का उपयोग करके क्वेरीज़ (और टेबल) बनाना संभव है?


3
द्वारा file:योजना आप कंप्यूटर पर मतलब है ब्राउज़र पर चल रहा है?

3
हाँ। वर्तमान में मेरे पास एक उपकरण है जो एक रिपोर्ट (छवियों का एक गुच्छा, एचटीएमएल फ़ाइलें और एक स्क्वैलाइट डेटाबेस) बनाता है। मैं इस रिपोर्ट को स्थानीय स्तर पर (यानी $ google-chrome report_out / index.html) खोल सकता हूं। मैं इसे और अधिक संवादात्मक बनाना चाहता हूं, इसलिए जावास्क्रिप्ट डेटाबेस से उत्पन्न डेटा को पढ़ेगा और इसके आंकड़े तैयार करेगा।
पाल स्ज़्ज़ज़

मेरा मानना ​​है कि यह एक WebSocket प्रॉक्सी के माध्यम से एक कनेक्शन बनाने के लिए संभव होगा, लेकिन इसे सेट करने में काफी काम
लगेगा

जवाबों:


41

दरअसल इसका जवाब हां है। यहाँ एक उदाहरण है कि आप यह कैसे कर सकते हैं: http://html5doctor.com/introducing-web-sql-datource/

बुरी बात यह है कि यह ब्राउज़रों द्वारा बहुत सीमित समर्थन के साथ है।

अधिक जानकारी यहाँ HTML5 IndexedDB, Web SQL डेटाबेस और ब्राउज़र युद्ध

पुनश्च: जैसा कि @Christoph ने कहा कि वेब एसक्यूएल अब सक्रिय रखरखाव में नहीं है और वेब एप्लिकेशन वर्किंग ग्रुप इसे बनाए रखने का इरादा नहीं रखता है इसलिए यहाँ देखें https://developer.mozilla.org/en-US/docs/IndexedDB

SQL.js

संपादित करें

जैसा कि @clentfort ने कहा, आप SQL.js का उपयोग करके क्लाइंट-साइड जावास्क्रिप्ट के साथ SQLite डेटाबेस तक पहुँच सकते हैं ।


14
FYI करें websql को छोड़ दिया गया है ... इसके बजाय indexedDB को बढ़ावा दें
क्रिस्टोफ

2
लेकिन क्या पहले से मौजूद डेटाबेस से जुड़ना संभव है? मेरे पास पहले से ही इसमें डेटा का एक गुच्छा है, जिसे मैं जावास्क्रिप्ट के साथ प्रोसेस करना चाहूंगा।
पाल स्ज़्ज़ज़

आप कुछ सर्वर साइड सामान के साथ जा सकते हैं, या इस के लिए Node.js कोशिश codeforgeek.com/2014/07/node-sqlite-tutorial
Mrug

40

आप SQL.js का उपयोग कर सकते हैं जो कि जावास्क्रिप्ट के लिए संकलित एसक्यूएलइट है और एचटीएमएल 5 में पेश किए गए स्थानीय भंडारण में डेटाबेस को संग्रहीत करता है।


9
स्थानीय भंडारण बहुत धीमा और भद्दा होता है ... आपको इसके स्थान पर indexedDB का उपयोग करना चाहिए। फिर भी यह एक कारगर उपाय है जो मुझे लगता है।
क्रिस्टोफ

2
जबकि स्थानीयस्टोर इंडेक्सडीडीबी जितना अच्छा नहीं है, यह हर जगह बहुत समर्थित है। SQL.js सीधे लोकलस्टोर का उपयोग नहीं करता है (यह मेमोरी में है), इसलिए आपको केवल स्टार्टअप / शटडाउन पर लोकलस्टोर से पढ़ना / लिखना होगा, आप किसी सर्वर पर SQL.js की स्थिति भी बचा सकते हैं। अच्छा है अगर आप चाहते हैं कि उपयोगकर्ता विशेष रूप से परिवर्तनों को सहेजे, तो बुरा यदि कोई उपयोगकर्ता बिना सहेजे उसे बचा सकता है तो वह चीजों को तोड़ सकता है।
पर्किन्स

20

अप टू डेट उत्तर

Sql.js का मेरा कांटा अब क्रिकेन के रेपो पर मूल संस्करण में विलय कर दिया गया है

अच्छा प्रलेखन भी मूल रेपो पर उपलब्ध है।

मूल उत्तर (पुराना)

आपको sql.js के नए संस्करण का उपयोग करना चाहिए । यह sqlite 3.8 का एक बंदरगाह है, एक अच्छा दस्तावेज है और इसे सक्रिय रूप से (मेरे द्वारा) बनाए रखा जाता है। यह तैयार कथनों और BLOB डेटा प्रकार का समर्थन करता है।


क्या मैं एक्सेस करने के लिए sql.js का उपयोग कर सकता हूं (सम्मिलित करें, अपडेट करें, पढ़ें) SQLite डेटाबेस जो सर्वर की तरफ है।
अबी

@lovasoa यदि मैं sql.js का उपयोग करता हूं, तो क्या एक ताजा कंप्यूटर मेरी साइट को चला सकता है और सीआरयूडी को उसके डेटाबेस (HTML फ़ोल्डर के साथ उसी रास्ते में संग्रहीत db) को बिना किसी इंस्टॉलेशन के कर सकता है?
जेफ गिल्बर्ट

1
@JeafGilbert No. sql.js विशेष रूप से इन-मेमोरी संचालित करता है, कुछ भी कायम नहीं है। यदि आप अपने फाइल सिस्टम पर डेटाबेस फाइल लिखना चाहते हैं, तो आपको खुद ही उस तर्क को लिखना होगा।
lovasoa

4

सबसे दिलचस्प विशेषताओं में HTML5से एक स्थानीय रूप से डेटा स्टोर करने और एप्लिकेशन को ऑफ़लाइन चलाने की अनुमति देने की क्षमता है। तीन अलग-अलग एपीआई हैं जो इन सुविधाओं से निपटते हैं और एक को चुनना इस बात पर निर्भर करता है कि आप उस डेटा के साथ क्या करना चाहते हैं जो आप स्थानीय स्तर पर स्टोर करने की योजना बना रहे हैं:

  1. वेब भंडारण: कुंजी / मूल्य जोड़े के साथ बुनियादी स्थानीय भंडारण के लिए
  2. ऑफ़लाइन संग्रहण: ऑफ़लाइन उपयोग के लिए संपूर्ण फ़ाइलों को कैश करने के लिए एक मैनिफ़ेस्ट का उपयोग करता है
  3. वेब डेटाबेस: रिलेशनल डेटाबेस स्टोरेज के लिए

अधिक संदर्भ के लिए HTML5 संग्रहण API का परिचय दें

और कैसे उपयोग करें

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


5
हे, अपने जवाब के दूसरे संशोधन पर एक नज़र डालें, वहां आप इसे पढ़ सकते हैं;)
क्रिस्टोफ

1

PouchDB जैसे कुछ का उपयोग करने के बारे में क्या? http://pouchdb.com/


जैसा कि आप देख सकते हैं कि प्रश्न के लेखक के पास sqlite DB है, और आपने SQLITE => POUCHDB
maxkoryukov

-2

IMHO, सबसे अच्छा तरीका है कि AJAX के माध्यम से POST का उपयोग करके पायथन को कॉल करें और वह सब कुछ करें जो आपको पायथन के भीतर DB के साथ करना है, फिर परिणाम को जावास्क्रिप्ट में वापस करें। Python में json और sqlite का समर्थन बहुत बढ़िया है और यह Python के हाल के कुछ संस्करणों के भीतर 100% बिल्ट-इन है, इसलिए कोई "इसे स्थापित न करें, उस" दर्द को स्थापित करें। पायथन में:

import sqlite3
import json

... बस इतना ही चाहिए। यह हर पायथन वितरण का हिस्सा है।

@ सैड्रिक जेफरसन ने उदाहरणों के लिए कहा, इसलिए (कुछ हद तक) मैंने यहां जावास्क्रिप्ट और पायथन के बीच एक स्टैंड-अलोन लिखा है।


2
प्रश्न में "... जिसे मैं ब्राउज़र से एक्सेस करना चाहूंगा ..." शामिल है । तो आपका जवाब (के साथ python) क्षेत्र से बाहर है (कम से कम आज, जब यह एक ब्राउज़र से अजगर को चलाने के लिए इतना आसान नहीं है)
मैक्सकोरुकोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.