Суббота, 20.04.2024, 17:29
Приветствую Вас Гость | Регистрация | Вход

Отдел информационных технологий ГКБ №29 г.Новокузнецк

Меню сайта
Категории раздела
Полезные утилиты [5]
Поиск
Наш опрос
Как Вы оцениваете качество материалов?
Всего ответов: 28
Полезные ссылки
  • Официальный блог
  • Сообщество uCoz
  • Технологии программирования
  • Сайт о здоровье
  • Друзья сайта
  • КМИАЦ Новокузнецка
  • Интернет университет
  • Дистанционное обучение
  • Статистика
    Деловая сеть Кемерово и Кемеровская область. Жёлтые страницы, телефонный справочник и каталог компаний, товаров и услуг. Rambler's Top100
    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Погода
    Яндекс.Погода

    Каталог статей

    Главная » Статьи » Программирование в Access » Полезные утилиты

    Автоматическое обновление при запуске программы

    При эксплуатации программы "Поликлиника" возникла потребность в выполнении обновления базы или выполнении технологических операций в автоматическом режиме.

    Для осуществления этого было сделано следующее:

    1. В основной базе была сделана таблица UpdateProc (Поля: id счетчик, Proc текст, Ex логическое по умолчанию False).

    2. В программной части сделана локальная таблица Upd (Поля: Proc Текст).

    Для функций обновления был выделен специальный модуль в котором создаются функции вида:

    Function update110(path)
    'дневной стационар
    Dim db As Database
    Set db = OpenDatabase(path)
    On Error GoTo Err:

    db.Execute "Alter Table Пациенты ADD id_Zhitel Byte"
    db.Execute "Alter Table Пациенты ADD PolisDMS text(20)"
    db.Execute "Alter Table Пациенты ADD DogDMS text(20)"
    db.Execute "Alter Table Пациенты ADD SMODMS integer"


    update110 = True

    Exit Function
    Err:
    update110 = False
    MsgBox "ошибки при обновлении 110"

    End Function

    Если функция подлежит выполнению в автоматическом режиме, то ее имя добавляется в таблицу Upd.

    В дальнейшем при запуске программы запускается процедура UpdateProg которая добавляет новые имена функций из Upd в UpdateProc по полю Proc и выполняет функции из модуля обновления для которых поле Ex имеет значение False. Это могут быть или новые функции или те которые при предыдущем запуске не удалось выполнить (причины могут быть разные, в основном это блокировка таблицы).

    Функции которые были успешно выполнены помечаются в поле Ex = True и в дальнейших запусках не участвуют.

    Sub UpdateProg(path)
    Dim rst As Recordset
    On Error Resume Next

    CurrentDb.Execute "INSERT INTO UpdateProc ([Proc]) " & _
    "SELECT Upd.Proc " & _
    "FROM Upd LEFT JOIN UpdateProc ON Upd.Proc = UpdateProc.Proc " & _
    "WHERE (((UpdateProc.Proc) Is Null));"


    Set rst = CurrentDb.OpenRecordset("select * from UpdateProc where ex=false order by id")

    Do Until rst.EOF
      If Application.Run(rst!Proc, path) = True Then
      rst.Edit
      rst!ex = True
      rst.Update
      End If

    rst.MoveNext
    Loop


    End Sub


    Параметр Path в процедуре и функции это путь к базе данных, который берется из файла настройки при запуске программы.

    Категория: Полезные утилиты | Добавил: AdminGkb29 (02.11.2009)
    Просмотров: 1433 | Комментарии: 1 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]