tx.executeSql('DROP TABLE IF EXISTS DEMO');
हर बार जब आप अपना PhoneGap मोबाइल एप्लिकेशन शुरू करते हैं तो ऊपर दी गई यह पंक्ति DEMO नाम की तालिका को हटा देती है
और मैं सिर्फ आपको बताना चाहता हूं कि मुझे आपका कोड पसंद है। यह किसी के फोनगैप या कॉर्डोवा एप्लिकेशन के लिए "क्या करें" के बारे में एक बहुत अच्छा सुराग देता है। यह किसी ऐसे व्यक्ति की बहुत मदद करेगा जो पहली बार SQLite की दुनिया में प्रवेश कर रहा है।
GitHub पर Cordova/PhoneGap SQLite प्लगइन आधिकारिक वेबसाइट पर लिखे गए कोड की तुलना में आपका कोड पढ़ने और समझने में बहुत साफ है।
मेरे दोस्त, जो एक कंपनी के सीटीओ के रूप में भी काम करते हैं, और SQLite के साथ काफी अनुभव रखते हैं, ने मुझे बताया कि मैन्युअल रूप से SQLite डेटाबेस कनेक्शन को बंद करना आवश्यक नहीं है, और SQLite की अत्यधिक अनुशंसा भी की है।
और किसी और के लिए जो PhoneGap/Cordova जानकारी के लिए SQLite खोज रहे हैं -
मान लें कि आपके पास mytable नाम की एक टेबल है और आप "खूबसूरत" और "डॉल्फ़िन" मानों को संग्रहित करना चाहते हैं
जब आप किसी मोबाइल डिवाइस, जैसे टैबलेट या फोन के SQLite पर कोई कार्रवाई करना चाहते हैं, तो उसे इस तरह कॉल करना याद रखें
अपने स्रोत कोड में निम्नलिखित रखें
function insertNewLine(tx)
{
tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
}
और "खूबसूरत" को var1 के अंदर और "डॉल्फ़िन" को var2 के अंदर और
. स्टोर करेंSQL इंसर्ट स्टेटमेंट को निष्पादित करने और फिर डिवाइस के अंदर सेव करने के लिए निम्न कथन करें।
db.transaction(insertNewLine);
नहीं सीधे कॉल इन्सर्टन्यूलाइन (टीएक्स)
नहीं सीधे tx.executeSql (/* SQL INSERT STATEMENT */) पर कॉल करें; आपके जावास्क्रिप्ट स्रोत कोड में
और न करें मानों को सीधे SQL क्वेरी कथन में शामिल करें और फिर SQL कथन चलाएँ जिसमें वे मान शामिल हैं जिन्हें आप डेटाबेस में संग्रहीत करना चाहते हैं।
दूसरे शब्दों में, निम्नलिखित गलत है
tx.executeSql('INSERT INTO mytable (word, meaning) values (beautiful, dolphin)');
उपरोक्त गलत है क्योंकि जिन मूल्यों को आप स्टोर करना चाहते हैं, "सुंदर" और "डॉल्फ़िन" SQL कथन के अंदर शामिल हैं। उन्हें अलग होना चाहिए।
INSERT SQL को चलाने का सही तरीका निम्नलिखित है
tx.executeSql("INSERT INTO mytable (word, meaning) VALUES (?,?)", [ var1 , var2 ]);
// Notice that the values you want to store, beautiful and dolphin
// are separate from the SQL INSERT INTO statement
और फिर अपने जावास्क्रिप्ट कोड में निम्नलिखित को शामिल करके संपूर्ण डेटाबेस लेनदेन करें
db.transaction(insertNewLine);
नीचे दिया गया कोड नहीं
tx.executeSql("INSERT....."); // this will not save your values onto the device
नीचे दिया गया कोड भी नहीं
insertNewLine(tx); // this will not save your values onto the device either.
और सेलेक्ट SQL स्टेटमेंट का उपयोग करने के लिए, निम्न कोड रखें
// Get all lines in the table
//
function viewthelastglory(tx)
{
tx.executeSql( 'SELECT * FROM CUSTOMTABLE', [], querySuccess, errorcode );
}
// Deal with the lines
//
function querySuccess(tx, results)
{
var len = results.rows.length; var queryresult = "all entries ";
for (var i = 0 ; i < len ; i++)
{
queryresult = queryresult +
" Row - " + i +
" Word - " + results.rows.item(i).word +
" Meaning - " + results.rows.item(i).meaning;
}
// and now, you can use the queryresult variable to use the values
}
function errorcode(errorhaha)
{
alert("Error Code " + errorhaha.code + " Error Message " + errorhaha.message);
}
और फिर, डेटाबेस लेनदेन करें
db.transaction(viewthelastglory);
यदि आप SQLite, WebSQL और IndexedDB में से किसी एक को चुनने का प्रयास कर रहे हैं, तो कृपया याद रखें कि मैंने कुछ समय के लिए स्टैक ओवरफ्लो की खोज की और सीखा कि
- IndexedDB की जटिलता के कारण कोई भी इसे पसंद नहीं करता है
- IndexedDB मोबाइल OS के कई प्रकारों और संस्करणों के साथ असंगत है
- WebSQL को W3C द्वारा हटा दिया गया है
- WebSQL 673K परिणाम देता है लेकिन SQLite 1800K परिणाम देता है। IndexedDB Google पर 300K परिणाम देता है
- IndexedDB, SQLite और WebSQL में, SQLite एकमात्र आधिकारिक वेबसाइट है।
जब आप अपने कॉर्डोवा प्रोजेक्ट की निर्देशिका में हों तो कमांड लाइन पर निम्न आदेश आपके कॉर्डोवा प्रोजेक्ट में SQLite प्लगइन स्थापित करेगा
cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin