एक साथ कई SQLite डेटाबेस का उपयोग करना

मेरे पास 2 SQLite डेटाबेस हैं, एक सर्वर से डाउनलोड किया गया है ( server.db ), और क्लाइंट ( client.db ) पर स्टोरेज के रूप में उपयोग किया जाता है। सर्वर डेटाबेस से डेटा का उपयोग कर, मुझे क्लाइंट डेटाबेस पर विभिन्न सिंक क्वेरी करने की आवश्यकता है।

उदाहरण के लिए, मैं client.db trole तालिका में सभी पंक्तियों को हटाना चाहता हूं, और server.db trole तालिका में सभी पंक्तियों के साथ दोबारा तैयार करना चाहता हूं।

एक और उदाहरण, मैं client.db tfile तालिका में सभी पंक्तियां हटाना चाहता हूं जहां fileID server.db tfile तालिका में नहीं है।

SQL सर्वर में आप डेटाबेस के नाम से तालिका को उपसर्ग कर सकते हैं। क्या एडोब एयर का उपयोग कर SQLite में ऐसा करने के लिए वैसे भी है?

0
जोड़ा संपादित
विचारों: 1
"डेटाबेस स्तर से ऐसा करने का कोई तरीका नहीं है।" ऐसा कैसे? SQLite में एक संलग्न कीवर्ड है जो आपको एक और डेटाबेस संलग्न करने की अनुमति देता है। और थियो का जवाब दिखाता है कि वायु में एक संबंधित एपीआई कॉल प्रतीत होता है। क्या आप कुछ भेदभाव कर रहे हैं जब आप विशेष रूप से "डेटाबेस स्तर से" कहते हैं?
जोड़ा लेखक spaaarky21, स्रोत

2 उत्तर

स्क्लाइट में एक बार में कई डेटाबेस खोलना संभव है, लेकिन फ्लेक्स / एआईआर से काम करते समय यह किया जा सकता है कि यह संदिग्ध है। कमांड लाइन क्लाइंट में आप ATTACH डेटाबेस पथ / / अन्य डीबी के रूप में अन्य डीबी चलाते हैं और फिर आप उस डेटाबेस में टेबल को otherDb.tableName के रूप में संदर्भित कर सकते हैं जैसे MySQL में या एसक्यूएल सर्वर।

संलग्न डेटाबेस में टेबल्स को वाक्यविन्यास डेटाबेस-नाम.table-name का उपयोग करने के लिए संदर्भित किया जा सकता है।

     

sqlite.org पर अटैक डेटाबेस दस्तावेज़

0
जोड़ा

मैंने अभी एआईआर एसक्यूएल एपीआई देखा है, और SQLConnection पर एक संलग्न विधि है, यह बिल्कुल वही दिखता है जो आपको चाहिए।

मैंने इसका परीक्षण नहीं किया है, लेकिन दस्तावेज़ीकरण के अनुसार इसे काम करना चाहिए:

var connection : SQLConnection = new SQLConnection();

connection.open(firstDbFile);
connection.attach(secondDbFile, "otherDb");

var statement : SQLStatement = new SQLStatement();

statement.connection = connection;
statement.text = "INSERT INTO main.myTable SELECT * FROM otherDb.myTable";
statement.execute();

उस कोड स्निपलेट में त्रुटियां हो सकती हैं, मैंने हाल ही में एआईआर एसक्यूएल एपीआई के साथ बहुत कुछ नहीं किया है। ध्यान दें कि main.tableName का उपयोग करके डेटाबेस की तालिका open के साथ खोला गया है, किसी भी संलग्न डेटाबेस को कोई भी नाम दिया जा सकता है ( otherDb ऊपर उदाहरण में)।

0
जोड़ा