Форум: "Базы";
Текущий архив: 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