Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Казус в создании MDI-приложения с использование баз данных!   Найти похожие ветки 

 
Артем К.   (2004-04-01 06:26) [0]

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

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

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

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

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


 
ЮЮ ©   (2004-04-01 07:18) [1]

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


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

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


 
ЮЮ ©   (2004-04-01 07:54) [3]

На 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;
 ...


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

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

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


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

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


 
Sergey13 ©   (2004-04-01 09:08) [6]

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


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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
3-1080446567
GetIt
2004-03-28 08:02
2004.04.25
paradox с паролем


14-1080925674
SergP
2004-04-02 21:07
2004.04.25
Что за прикол такой?


7-1077902565
$tranger
2004-02-27 20:22
2004.04.25
Работаю с файлом через LAN-сеть


3-1080640978
Виктор
2004-03-30 14:02
2004.04.25
Description таблиц базы Firebird


14-1080647782
panov
2004-03-30 15:56
2004.04.25
Настройка учетных записей.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский