|
Связь с дочерней таблицей..
|
|||
---|---|---|---|
#18+
Таб1 - родительская Таб2 - дочерняя Буферизация с циферкой 4. Связь один ко многим прописана в БД и среде данных обеих форм. На форме №2 в гриде в RecordSource прописана вторая таблица. На форме №1 отображается Таб1, с нее переход на форму №2 по двум кнопкам - с одной корректировка старых записей, с другой - создание новой записи. На форме №2 Таб2 отображается в гриде. При корректировке все нормально - на второй форме в гриде отображаются только те записи дочерней таблицы, которые соответствуют записи из Таб1. А при создании новой записи в гриде отображаются все записи из Таб2, а должна только одна (вновь созданная с соответсвующим id для Таб1). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2010, 10:49 |
|
Связь с дочерней таблицей..
|
|||
---|---|---|---|
#18+
NnnnnТаб1 - родительская Таб2 - дочерняя Буферизация с циферкой 4. Связь один ко многим прописана в БД и среде данных обеих форм. На форме №2 в гриде в RecordSource прописана вторая таблица. На форме №1 отображается Таб1, с нее переход на форму №2 по двум кнопкам - с одной корректировка старых записей, с другой - создание новой записи. На форме №2 Таб2 отображается в гриде. При корректировке все нормально - на второй форме в гриде отображаются только те записи дочерней таблицы, которые соответствуют записи из Таб1. А при создании новой записи в гриде отображаются все записи из Таб2, а должна только одна (вновь созданная с соответсвующим id для Таб1).Не забудьте сделать REFRESH форме и гриду в INITе второй формы ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2010, 11:36 |
|
Связь с дочерней таблицей..
|
|||
---|---|---|---|
#18+
igorbik, Конечно, он там есть. Вторая форма загружается просто с разными параметрами в зависимости от того корректируется запись, или вводится новая. Но у меня такое впечатление, что при введении новой записи просто игнорируется связь между Таб1 и Таб2. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2010, 15:06 |
|
Связь с дочерней таблицей..
|
|||
---|---|---|---|
#18+
Связь - это взгляд на подчиненную таблицу со стороны главной . Это принципиально. Надо "смотреть" именно со стороны главной таблицы. Т.е. находится в рабочей области главной таблицы чтобы произошла "фильтрация" записей подчиненной. Grid хорошо "помнит" ту таблицу, которая оказалась его источником данных в момент его инициализации. Первая любовь, так сказать... Причем "помнит" не только рабочую область, но и наложенный "фильтр" по SET RELATION. Из всего этого следует, что в принятой у Вас схеме работы необходимо 1. На этапе проектирования формы (в дизайнере) указать пустое значение Grid.RecordSource Важно, чтобы это значение было выделено жирным шрифтом. Это и будет указание пустого значения. Если значение будет "по умолчанию", т.е. бледно серого цвета, то это означает, что Grid подхватит первую попавшуюся таблицу в момент инициализации. 2. На момент как настройки Grid, так и создания новой записи в подчиненной таблице, в качестве текущей рабочей области должна быть главная таблица Код: plaintext 1. 2.
Хотя, следует заметить, что лучше отказаться от SET RELATION в пользу запросов, View или CursorAdapter. Решения на основе SET RELATION трудно масштабируемые. В смысле, их сложно модифицировать под очередные "хотелки" пользователей. Иногда, просто невозможно... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2010, 22:45 |
|
|
start [/forum/topic.php?fid=41&fpage=92&tid=1585041]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 329ms |
total: | 452ms |
0 / 0 |