Домашняя страничка Стефурак П.Б. Программа сравнения структур баз данных.
 
 
  
  
 
Промзона \ Программа сравнения структур баз данных.
Демо для теста.
 
В качестве демо, попросили меня, написать программу сравнения структур баз данных FireBird.  
Требования к программе звучали как-то так:  
Необходимо разработать приложение командной строки на Delphi/Lazarus, которое принимает в качестве
параметров командной строки:  
1. Базу шаблон;  
2. Базу для сверки;  
3. имя пользователя;  
4. пароль.  
Данная программа производит сверку структур баз данных, размещенных на сервере Interbase/Firebird/Yaffil,
а именно сверяет состав таблиц, состав полей таблиц и типы полей таблиц.  
Программа осуществляет вывод на консоль результата сверки в следующем виде:
если база шаблон содержит это поле или таблицу, а сравниваемая нет, то это поле/таблица выводится со знаком плюс;
если база шаблон таблицу или поле не содержит, а сравниваемая содержит, то выводить со знаком минус в начале строки.  
В программе реализовать загрузку информации шаблонной и сравниваемой базы в объект хранилище.
Данный объект содержит список объектов описывающих таблицы. Объект таблица так же содержит список
объектов описывающих поля. Объект база реализует метод сравнения. Метод доступа к базе значения не имеет.  
На выполнение данного задания отводится три-четыре рабочих дня.
 
Release.
 
Собственно, текст написанной программы:
Исходные тексты программы сравнения структур баз данных (код снабжен комментариями).  
Доступ к БД я реализовал через ADO компоненты, что позволило цепляется к чему только можно - был бы провайдер.
В качестве ADO провайдера при режиме Firebird используется
IBProvider - OLE DB Firebird драйвер и Interbase провайдер.  
В архиве - исходные тексты программы, MASTER и SLAVE - тестовые БД FireBird,
fb_test.bat - пример использования в режиме FireBird,
cs_test.bat - пример использования в режиме Connection String (формат Microsoft Data Link, udl).  
Текст снабжен комментариями, прекрасно компилируется как в Delphi XE, так и в Delphi 5.  
 
Если у вас будут мысли в чем можно улучшить эту программу - буду благодарен, если вы напишете мне о них на eмаil.