![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Выложи задание.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,210
|
![]()
Проект написан на Dеlphi XE и firebird
Краткое описание структуры программы: 1. В модуле uMStruct содержатся описания классов, используемых для хранения структуры БД. Основные элементы структуры следующие: TMField - класс для хранения описания отдельного поля таблицы; TMTable - класс для хранения описания отдельной таблицы БД; содержит список столбцов, принадлежащих таблице, и список связей с другими таблицами. При создании связи между основной и подчиненной таблицей для основной таблицы создается иерархическое дерево полей. TMStruct - класс, содержащий ссылки на все используемые таблицы. 2. В модуле uMPstruct содержится описание класса TMPStruct. Этот класс отвечает за сохранение в служебных таблицах БД описания структуры БД из объекта типа TMStruct; загрузку описания структуры БД в объект типа TMStruct из служебных таблиц БД; создание необходимых структур в БД (таблиц, полей, связей и т.п.) по описанию из объекта типаTMStruct. Для создания первоначальной структуры БД в программе сейчас выполняются следующие шаги: 1. Инициализируется структура TMStruct. 2. C помощью метода CreateMTable класса TMStruct создаются необходимые таблицы. 3. С помощью метода CreateMField класса TMTable в каждой таблице создаются необходимые поля. 4. С помощью метода LinkMTable класса TMTable устанавливаются связи между таблицами. При этом в иерархическое дерево полей основной таблицы добавляются все поля подчиненной таблицы. 5. На основании созданного описания структуры БД создается новый файл БД и объекты в нем (таблицы, поля, связи). В служебных таблицах БД сохраняется информация о объектах (таблицы, поля, связи). Для дальнейшего развития программы необходимо доработать модуль uMStruct таким образом, чтобы он поддерживал не только создание БД с <<чистого листа>>, но и изменение существующей структуры. Для этого необходимо выполнить следующие доработки: >> 1. В классе TMTable доработать метод CreateMField таким образом, >> чтобы при создании поля в подчиненной таблице автоматически вносились >> изменения в иерархическую структуру полей основной таблицы. >> >> 2. В класс TMTable добавить метод DeleteMField, удаляющий поле из >> текущей таблицы и иерархической структуры всех связанных с ней таблиц. >> >> 3. В класс TMStruct добавить метод DeleteMTable, удаляющий таблицы >> и соответствующим образом корректирующий струкутуру связанных таблиц. >> >> 4. В классы TMField, TMTable, TMStruct добавить методы Assign для >> осуществления копирования структуры БД. При этом применение метода >> Assign для TMStruct должно создавать полную копию структуры, независимую >> от источника (все содержащиеся объекты должны принадлежать этой структуре, >> а не быть ссылками на объекты структуры-источника). >> >> >> >> Для пояснения механизма хранения иерархии полей приведу иллюстрацию: >> >> >> >> Таблица 1 >> >> Поле 1.1 >> >> Поле 1.2 >> >> Поле 1.3 >> >> Таблица 2 >> >> Поле 2.1 >> >> Поле 2.2 >> >> Поле 2.3 >> >> Устанавливаем связь между таблицей 1 (основной) и таблицей 2 >> (подчиненной) по полю 1.2 (FK). В результате получаем: >> >> Таблица 1. >> >> Поле 1.1 >> >> Поле 1.2 >> >> Поле 2.1* >> >> Поле 2.2* >> >> Поле 2.3* >> >> Поле 1.3 >> >> При добавлении в таблицу 2 поля 2.4 автоматически должна происходить >> коррекция таблицы 1: >> >> Таблица 1. >> >> Поле 1.1 >> >> Поле 1.2 >> >> Поле 2.1* >> >> Поле 2.2* >> >> Поле 2.3* >> >> Поле 2.4* >> >> Поле 1.3 >> >> Примечание: поля 2.1* -2.4* являются самостоятельными объектами, >> принадлежащими таблице 1 и хранящими ссылку на исходные поля 2.1-2.4 >> таблицы 2. >> >> >> >> Для облегчения понимания используемого способа хранения структуры БД, в >> исходниках содержится часть проекта, выполняющая при запуске загрузку >> существующей структуры из прилагаемой БД.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 25.11.2011
Сообщений: 52
|
![]()
Igor23dec@yandex.ru
ICQ 2168364
e-mail: igor23dec@yandex.ru , ICQ: 2168364 , Telegram: @IgorVN
Delphi, PHP Примеры http://igorvn.ucoz.ru/ |
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 25.11.2011
Сообщений: 52
|
![]()
Delphi семерка
e-mail: igor23dec@yandex.ru , ICQ: 2168364 , Telegram: @IgorVN
Delphi, PHP Примеры http://igorvn.ucoz.ru/ Последний раз редактировалось Igor[Игорь]; 01.07.2012 в 06:29. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Доработка автопортала | ZioN | Фриланс | 0 | 02.10.2011 15:35 |
Доработка проекта VS! | VO1 | Фриланс | 4 | 27.09.2011 14:31 |
Доработка WHILE | RUSSTUDENT | Помощь студентам | 3 | 31.08.2010 17:11 |
Доработка | RUSSTUDENT | Помощь студентам | 2 | 28.08.2010 19:55 |
Доработка | A93 | Общие вопросы C/C++ | 4 | 28.11.2009 13:29 |