SQLite поддерживает репликацию?

Посмотрите пример о том, как можно сделать это с полным исходным кодом здесь:

http://www.csharphelp.com/2006/08/get-current-window-handle-and-caption-with-windows-api-in-c/

[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll")]
static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int count);

private string GetActiveWindowTitle()
{
    const int nChars = 256;
    StringBuilder Buff = new StringBuilder(nChars);
    IntPtr handle = GetForegroundWindow();

    if (GetWindowText(handle, Buff, nChars) > 0)
    {
        return Buff.ToString();
    }
    return null;
}

Отредактированный с @Doug McClean комментирует для лучшей правильности.

26
задан Hassan Syed 11 December 2009 в 14:16
поделиться

3 ответа

Метод грубой силы: отправьте ему команду ".dump" для создания текстового представления данных. Прочтите эти данные во вторую базу данных. Не уверен, что вы можете это использовать.

Если вам нужно детализированное обновление (отправка копии каждой копии в другую), посмотрите sqlite3_update_hook

Но как вы планируете обрабатывать ошибки? Например, что происходит, когда копия базы данных в app2 не может выполнить обновление по какой-либо причине?

Чтобы решить эту проблему, переместите базу данных в серверный процесс и попросите два приложения взаимодействовать с ним.

13
ответ дан 28 November 2019 в 17:23
поделиться

Если вы хотите репликацию в базе данных в памяти, вам нужно посмотреть berkeley DB (BDB) . Однако модель данных для BDB - это строковый словарь, поэтому вы теряете гибкость SQL. плюс у него есть лицензия из трех пунктов, поэтому, если ваш проект коммерческий, вам необходимо получить лицензии.

1
ответ дан 28 November 2019 в 17:23
поделиться

Нет, это не так, потому что объем проекта - простая внутрипроцессная база данных. Но поскольку база данных представляет собой всего лишь один файл, вы можете написать свой собственный сценарий репликации на основе операций копирования простых файлов, rsync или чего-то подобного.

Если вам действительно нужен тип СУБД клиент / сервер на основе SQLite, вы можете взять посмотрите SQLiteDBMS .

0
ответ дан 28 November 2019 в 17:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: