Напишу задачу целиком чтобы было понятно
Основная задача приложения поддержание зеркальной копии реляционной базы данных.
Функциональность приложения.
1. Приложение должно сканировать с определенной периодичностью (настраивается) таблицы базы данных-источника (настраивается), при обнаружении в ней записей, соответствующих одной из масок (настраивается) приложение должно воссоздать структуру таблиц в базе данных-стоке (настраивается) и скопировать эти записи. Приложение должно сканировать БД-сток на присутствие в ней записей, отсутствующих в БД-источнике и удалить их. Таким образом будет поддерживаться зеркальная копия источника. Процессы сканирования, копирования и удаления записей должны производиться в отдельных потоках.
2. Настройки приложения должны храниться в файле, а также динамически вступать в силу при их изменении.
3. Приложение должно иметь возможность отображения своего состояния (ожидание, сканирование, копирование и т.д.)
4. Сохранять статистику работы в файле (логирование).
5. Приложение отображает информацию из БД. Также необходимо реализовать функцию поиска необходимых строк в БД. Критерий для поиска «маска», вводимая пользователем как подстрока. Результат поиска выводить на экран сразу после изменения «маски» динамически «на лету».
Особенности реализации:
1. Программа должна быть написана в виде оконного приложения Win32. Пользовательский интерфейс должен быть удобным и понятным (для неопытного пользователя).
2. Алгоритм работы должен быть составлен как можно оптимальнее.
3. Код программы должен быть написан просто и понятно с учетом того, что программа может дорабатываться посторонним программистом. Приветствуются комментарии, поясняющие назначение отдельных блоков программы.
4. При написании программы необходимо применить знание принципов ООП, знание стандартных функций и классов, ускоряющих разработку приложения.
5. Обращение к БД реализовать на основе языка SQL. Тип базы данных не регламентируется.
6. Настройки приложения хранить в INI файле.
7. Для разработки использовать только стандартные компоненты. Т.е. не включать библиотек сторонних разработчиков. Исключение могут составлять компоненты доступа к специфическим СУБД.
|