Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Казус в создании MDI-приложения с использование баз данных! [D7, Paradox]


Артем К. ©   (2004-04-01 06:26:00) 

Здравствуйте, уважаемые Мастера!

Подскажите пожалуйста как:

1. У меня есть две таблицы: Журнал документов (Master) и Документ(Detail).
2. Они связаны по полю N (Номер документа).
3. В таблице "Журнал документов" указывается шапка документа, а в таблице "Документ" - тело документа.
4. У меня MDI-приложение.
5. Можно создавать несколько документов, а журнал открывать только один раз.
6. Допустим, если у меня октыт журнал документов и я создаю новый документ (в заголовке которого указывается шапка документа), то в журнале указывается шапка текущего (вновь созданного) документа.
7. А если я не закрывая вновь созданный документ, перевожу указатель записи в журнале документов на другую запись, то соответственно во всех открытых документах будет указываться данные для выбранной шапки документа.
8. Т.е. получится казус - не соответствие заголовка открытого документа и выбранной шапки в журнале документа.

Подскажите можно ли как-нибудь решить эту проблему.

Заранее спасибо!


Артем К.   (2004-04-01 09:15:00) [1]

Да! Вот такие мы зверьки :)
Можь исходник есть какой-нить?


Sergey13   (2004-04-01 09:08:00) [2]

Паралельноесоздание/редактирование документов в одной проге - задание? Или вы ошибаетесь, или... не тому у нас учат (опыт работы с вордом переносят в БД).
ИМХО
8-(


Артем К.   (2004-04-01 08:57:00) [3]

Что поделаешь? Курсовая - такое задание :(


Sergey13   (2004-04-01 08:31:00) [4]

2Артем К.   (01.04.04 06:26)
Мдя. С таким подходом надо быть предельно осторожным. Каждая дочка должна помнить полное состояние всего на момент своего открытия. Там же могут быть ссылки на датасеты (или другие объекты), не отраженные на главной форме, и изменяющие свое состояние неявно.
А что за нужда работать с несколькими документами сразу? Да тем более, как я понял, в режиме чтение/запись? Тут в транзакциях запутатья - раз плюнуть.

При условии, что "Я только начинаю осваивать базы данных" я бы посоветовал отказаться от такого подхода.


ЮЮ   (2004-04-01 07:54:00) [5]

На Child форме свой TQuery, выбирающий необходимую информацию для формы "Документ", с параметрическим запросом, например

SELECT * FROM Detail Where MasterID = :MasterID

TChildFrm = class(TForm)
 ...
piblic
   constructor Create(AOwner: TComponent; MasterId: integer); reintroduce;
 ...
constructor TfrmDocument.Create(
 AOwner: TComponent; Id, DocumentType: integer
);
begin
 inherited Create(AOwner);
 Query.Params[0].asInteger := MasterId;
 Query.Open;
 ...


Артем К.   (2004-04-01 07:43:00) [6]

Я только начинаю осваивать базы данных. Не могли бы Вы поконкретнее написать как это сделать, пожалуйста.


ЮЮ   (2004-04-01 07:18:00) [7]

DataSet для открытого докумета не должен быть связан с DataSet-ом Журнал документов, а, например, использовать параметрический запрос, значение параметра для которого получать из Журнал документов при создании MDI-Сhild формы


Наверх

Титульная страница Поиск, карта сайта Написать письмо