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

वोट
7

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

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

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

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

05/08/2008 को 17:09
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
7

मैं सिर्फ आकाशवाणी एसक्यूएल एपीआई को देखा, और एक वहाँ attachपर विधि SQLConnectionयह लगता है कि आप वास्तव में क्या जरूरत है।

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

var connection : SQLConnection = new SQLConnection();

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

var statement : SQLStatement = new SQLStatement();

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

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

13/08/2008 को 17:16
का स्रोत उपयोगकर्ता

वोट
1

यह एक बार SQLite में में एकाधिक डेटाबेस को खोलने के लिए संभव है, लेकिन यह संदिग्ध है कि अगर जब फ्लेक्स / आकाशवाणी से काम किया जा सकता है। कमांड लाइन ग्राहक में आप चलाने ATTACH DATABASE path/to/other.db AS otherDbऔर फिर आप के रूप में है कि डेटाबेस में तालिकाओं के लिए उल्लेख कर सकते हैं otherDb.tableNameबस MySQL या एसक्यूएल सर्वर के रूप में।

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

sqlite.org पर डेटाबेस दस्तावेज़ यहां अटैच

12/08/2008 को 13:55
का स्रोत उपयोगकर्ता

वोट
0

इस कोड काम हो सकता है, यह मेरे से लिखने है:

package lib.tools

import flash.utils.ByteArray;
import flash.data.SQLConnection;
import flash.data.SQLStatement;
import flash.data.SQLResult;
import flash.data.SQLMode; 
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
import flash.filesystem.File;
import mx.core.UIComponent;
import flash.data.SQLConnection;

public class getConn {
    public var Conn:SQLConnection;

    public function getConn(database:Array) {       
        Conn = new SQLConnection();
        var Key:ByteArray = new ByteArray();
        Key.writeUTFBytes("Some16ByteString"); 
        Conn.addEventListener(SQLErrorEvent.ERROR, createError);
        var dbFile:File = File.applicationDirectory.resolvePath(database[0]);
        Conn.open(dbFile);
        if(database.length > 1) {
            for(var i:Number = 1; i < database.length; i++) {
                var DBname:String = database[i];
                Conn.attach(DBname.split("\.")[0], File.applicationDirectory.resolvePath(DBname));
            }
        }
        Conn.open(dbFile, SQLMode.CREATE, false, 1024, Key); 
    }

    private function createError(event:SQLErrorEvent):void {
        trace("Error code:", event.error.details);
        trace("Details:", event.error.message);
    }

    public function Rs(sql:Array):Object {
        var stmt:SQLStatement = new SQLStatement();
        Conn.begin();
        stmt.sqlConnection = Conn;
        try {
            for(var i:String in sql) {          
                stmt.text = sql[i]; 
                stmt.execute();
            }
            Conn.commit();
        } catch(error:SQLErrorEvent) {
            createError(error);
            Conn.rollback();
        };
        var result:Object =stmt.getResult();
        return result;
    }
}
15/12/2008 को 17:46
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more