Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Использование нескольких баз данных SQLite одновременно
У меня есть 2 базы данных SQLite, одна загружена с сервера (server.db), а другая используется в качестве хранилища на клиенте ( client.db). Мне нужно выполнить различные запросы синхронизации в клиентской базе данных, используя данные из базы данных сервера.
Например, я хочу удалить все строки в таблице client.db tRole и повторно заполнить все строки в таблице server.db tRole .
Другой пример: я хочу удалить все строки в таблице client.db tFile , где fileID не находится в таблице server.db tFile .
В SQL Server вы можете просто префиксировать таблицу с именем базы данных. Есть ли вообще возможность сделать это в SQLite, используя Adobe Air?
Я только что посмотрел на AIR 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();
В этом фрагменте кода могут быть ошибки, в последнее время я мало работал с AIR SQL API. Обратите внимание , что таблицы базы данных, открытые с помощью open , доступны с помощью main.tableName, любой присоединенной базе данных может быть присвоено любое имя вообще ( otherDb в приведенном выше примере).
В Sqlite можно открыть сразу несколько баз данных, но вряд ли это можно сделать при работе с Flex/AIR. в клиенте командной строки, который вы запускаете ATTACH DATABASE path/to/other.db AS otherDb , а затем вы можете ссылаться на таблицы в этой базе данных как на otherDb.tableName , так же как и на MySQL или SQL сервере.
Столы в прикрепленной базы данных может быть передан с использованием базы данных name.table-name синтаксис.
этот код может быть работой,он написан мной:
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;
}
}