2013-10-10 9 views
5

मैं फोनगैप के साथ डेटाबेस का उपयोग कर रहा हूं। मुझे यह जानने की जरूरत है कि डेटाबेस पहले ही बनाया जा चुका है या नहीं। मैं पूरी बनाने वाली टेबल से बचने और पंक्तियों को सम्मिलित करने की कोशिश कर रहा हूं यदि डीबी पहले से मौजूद है।फोनगैप - यदि डेटाबेस पहले से मौजूद है तो

var db = window.openDatabase ("डेटाबेस", "1.0", "फ़िल्टररसल्ट्स", 50000000);

यह मेरे डीबी को खोलता/बनाता है, ठीक है, लेकिन मुझे कैसे पता चलेगा कि यह डेटाबेस पहले से मौजूद है या नहीं?

उत्तर

-1

चेक प्रलेखन: http://docs.phonegap.com/en/3.0.0/cordova_storage_storage.md.html#Storage

function populateDB(tx) { 
    tx.executeSql('DROP TABLE IF EXISTS DEMO'); 
    tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
    tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
} 

function errorCB(err) { 
    alert("Error processing SQL: "+err.code); 
} 

function successCB() { 
    alert("success!"); 
} 

var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000); 
db.transaction(populateDB, errorCB, successCB); 
+0

मैंने पहले से ही किया है, लेकिन मुझे यह जानने की जरूरत है कि डेटाबेस मौजूद है, टेबल नहीं। यदि डेटाबेस पहले से मौजूद है, तो इसका मतलब है कि कोड का ब्लॉक पहले ही चल चुका है, फिर से क्यों? –

+1

प्रति पृष्ठ लोड करने के बाद आप डेटाबेस खोलते हैं, फिर इसे कुशल बनाते हैं। आपको प्रति पृष्ठ एक से अधिक बार window.openDatabase चलाने की आवश्यकता नहीं है, है ना? तो यह जांचने की कोई आवश्यकता नहीं है कि यह मौजूद है या नहीं। –

+2

@ सैम थॉम्पसन: यदि मैं किसी अन्य पृष्ठ पर जाता हूं और उस पृष्ठ पर वापस आ जाता हूं या एप्लिकेशन को मारता हूं और इसे फिर से चलाता हूं, तो डेटाबेस को पुनर्प्राप्त करने के लिए कैसे पहले से बनाया गया है। यह सवाल है। –

0

var db = window.openDatabase("myDB", "1.0", "FiltersResults", 50000000); जांच करता है कि आप एक डेटाबेस myDB कहा जाता है यदि वह मौजूद है यह यह खोलता है। यदि नहीं, तो यह एक बनाता है और इसे खोलता है। तो अगर आप यह देख रहे हैं कई डेटाबेस बनाने के लिए, नीचे दो कारणों से हो सकता है मैं के

  • आपको लगता है कि यूआरएल चल अधिक है कि एक खिड़की है सोच सकते हैं, बस पूरी तरह से ब्राउज़र से बाहर निकलें और यूआरएल के साथ एक विधवा को खोलने
  • Safari 5.1.2 में प्रस्तुत एक जानकार यूआई संबंधित बग था, जो बाद के संस्करणों में तय किया गया था।
संबंधित मुद्दे