Помогите с реализацией архивирования

Тема в разделе "Lotus - Программирование", создана пользователем TimurM, 26 янв 2011.

Статус темы:
Закрыта.
  1. TimurM

    TimurM Гость

    Добрый день.
    Следующая проблема. Есть база данных на сервере с дизайном для ввода и редактирования данных.
    Необходимо создать архивную базу упрощенной структуры, в которой будут средства просмотра и т. д.
    Архивная база будет на локальном компьтере, на сервере ее хранить нет возможности из-за размера.
    Нужно, чтобы дизайн архивной базы на локальном компе при архивации автоматом обновлялся (шаблон архивной базы
    думаю хранить на сервере).
    Если использовать стандартные методы архивации лотуса (недокументированные методы NotesUIDatabase типа
    ArchiveNow(), EditArchiveSettings() и т. д.), то он просто скопирует дизайн с базы оригинала,
    а мне нужно его брать с другого шаблона.
    Я думал шаблон архивной базы хранить на сервере, а локальная база будет его юзать.
    Вопросы:
    1. есть ли метод в LotusScript, позволяющий принудительно обновить структуру существующей базы
    немедленно с шаблона?
    2. Если я иду не в том направлении подскажите, плиз, как сделать правильнее.
    Заранее спасибо.
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Код (LotusScript):
    Declare Private Function W32_NSFDbOpen Lib "nnotes" Alias "NSFDbOpen" (Byval PathName As Lmbcs String, hDB As Long) As Integer
    Declare Private Function W32_DesignRefresh Lib "nnotes" Alias "DesignRefresh" (Byval ServerName As Lmbcs String, Byval hDB As Long, Byval dwFlags As Long, Byval abortCheck As Integer, Byval messageProc As Integer) As Integer
    Declare Private Function W32_NSFDbClose Lib "nnotes" Alias "NSFDbClose" (Byval hDB As Long) As Integer


    Dim rc As Integer, hDb As Long
    Call AddLog("Оновлення на сервері: " & destPath & " ...")
    rc = W32_NSFDbOpen(destPath, hDb) ' Open the db in the API and get a handle to the open db
    If rc <> 0 Then
    Call AddLog("Не удаётся открыть БД - Error Code " & Cstr(rc))
    Else
    rc = W32_DesignRefresh("", hDb, 0, 0, 0)
    If rc <> 0 Then
    Call AddLog("Не удалось обновить БД - Error Code " & Cstr(rc))
    End If
    Call W32_NSFDbClose(hDb)
    End If
    обновить дизайн можно только через АПИ
     
  3. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
  4. TimurM

    TimurM Гость

    Большое спасибо! Тема закрыта.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей