от
У меня есть 2 базы данных SQLite, скачанный с сервера (
server.db
), и используется в качестве хранилища на клиенте (
client.db
). Мне нужно выполнять различные запросы синхронизации на клиентской базе данных, используя данные из базы данных сервера. Например, я хочу удалить все строки в таблице
client.db tRole
, и заполнять все строки в таблице
server.db tRole
. Другой пример, я хочу удалить все строки в таблице
client.db tFile
, где
fileID
не в
server.db tFile
стол. В SQL Server вы можете просто префикс таблицы с именем базы данных. Есть в любом случае сделать это в SQLite с помощью Adobe воздуха?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

4 Ответы

0 голосов
от
У меня есть 2 базы данных SQLite, скачанный с сервера (
server.db
), и используется в качестве хранилища на клиенте (
client.db
). Мне нужно выполнять различные запросы синхронизации на клиентской базе данных, используя данные из базы данных сервера. Например, я хочу удалить все строки в таблице
client.db tRole
, и заполнять все строки в таблице
server.db tRole
. Другой пример, я хочу удалить все строки в таблице
client.db tFile
, где
fileID
не в
server.db tFile
стол. В SQL Server вы можете просто префикс таблицы с именем базы данных. Есть в любом случае сделать это в SQLite с помощью Adobe воздуха?
0 голосов
от
Я просто посмотрел на воздух в SQL API, и есть способ
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 INTO main.myTable SELECT * FROM otherDb.myTable";
statement.execute();
Там может быть ошибки в том, что код snipplet, я не так много работал в последнее время с SQL и API-интерфейс. Обратите внимание, что в таблицах базы данных открыт с
open
доступны через
main.tableName
, все подключенные базы данных может быть дано любое имя на всех (
otherDb
в приведенном выше примере).
0 голосов
от
Можно открыть несколько баз данных в SQLite, но вряд ли может быть сделано при работе с Flex/воздуха. В клиенте командной строки вы запускаете
ATTACH DATABASE path/to/other.db AS otherDb
и тогда вы можете обратиться к таблицам в этой базе данных как
otherDb.tableName
просто как в MySQL или SQL сервер. Столы в прикрепленной базы данных может быть передан с использованием базы данных-имя синтаксис.таблица-имя. Приложите документы базы данных sqlite.org
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
...