SQLite и Сеть, Выполнение запросов и приём строк таблиц по сети... |
Здравствуйте, гость ( Вход | Регистрация )
SQLite и Сеть, Выполнение запросов и приём строк таблиц по сети... |
512es |
1.12.2010, 3:22
Сообщение
#1
|
Участник Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: 0 |
Всем привет!
Есть задача синхронизации 2-х баз через интернет. В основном атомарные селекты, построчно. Через ооочень плохой интернет. Список строк, которые нужно обновить, получаю сравнением таблиц хешей в базах. Собираюсь писать клиент и сервер. Как лучше пересылать строки таблиц? Знаю несколько вариантов: 1) QTcpServer + QDataStream (свой протокол) 2) QTcpServer + QtXml 3) RPC (QxtXmlRpc или qxmlrpc) 4) QHttp (get. post) В целом, последовательность действий будет такова: 1) Запрос, 1 строка переменной длинны (удастся ли обойтись без QSqlQuery::prepare() ??) 2) Ответ, 1 строка таблицы переменной длинны и количества столбов или result Кроме того, в пакеты собираюсь встраивать хеш, чтобы исключить 99.9% ошибок. А так же, сжимать их посильнее (zlib или арифметическим кодированием). Ну и ssl тоже не помешал бы..) Вообще, в QDataStream можно легко построить нужный пакет и залить в него строку. Но придумывать протокол лениво немного)) С другой стороны, в чужом коде копаться тоже не охота.. А с хмлом, честно сказать, как следует знаком не был. В целом, задумка попахивает попыткой написания сервера склайта. Отправлять запросы, принимать строки таблиц. Упор на проверку ошибок пакетов. Сейчас использую вместо второй базы Postgres. Вообщем то работает, но от жуткого инета иногда зависает клиентская программа( Думается мне, что не по назначению юзаю постгрес.. Посоветуйте что нибудь.) Если можно, с простенькими примерами, дабы сравнить способы. Сообщение отредактировал 512es - 1.12.2010, 3:25 |
|
|
silver47 |
24.4.2011, 6:45
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: 6 |
Использую "1) QTcpServer + QDataStream (свой протокол)". Немного не устраивает скорость передачи. На получение таблицы из 100 записей уходит приличное ко-во времени (порядка 5 секунд).
|
|
|
Алексей1153 |
2.5.2011, 13:07
Сообщение
#3
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
silver47, а объём памяти, занятой теми записями, какой?
|
|
|
Алексей1153 |
2.5.2011, 16:01
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
вариант QTcpServer + QtXml тоже хорош в плане гибкости. А сам XML перед пересылкой можно хорошо пожать зипом
|
|
|
Текстовая версия | Сейчас: 15.1.2025, 14:15 |