![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
связанные таблицы [D7, FlashFiler]
MORA © (2004-07-27 12:08:00)у меня есть 3 связанные таблицы: ЗАКАЗЧИКИ, --> ОБЪЕКТЫ, --> ПОМЕЩЕНИЯ (каждая последующая является подчиненной для предыдущей). И четвертая таблица - ЗАКАЗЫ, в которой хранятся заказы для ПОМЕЩЕНИЙ. Понятно, что по ПОМЕЩЕНИЮ можно идентифицировать ОБЪЕКТ, по ОБЪЕКТу - ЗАКАЗЧИКа, поэтому в заказах я храню только ПОМЕЩЕНИЕ.
Вопрос в следующем:
как по-умному заполнить ДБэдиты при открытии формы редактирования заказа (чтобы в зависимости от ПОМЕЩЕНИЯ заполнились ОБЪЕКТЫ и ЗАКАЗЧИКИ)?
Проблемка в том, что таблицы связаны и с помощью DataSet.Locate() сделать это низя.
MORA (2004-07-27 15:25:00) [21]
> поэтому используя в SQL-запросе выражение WHERE Вы всегда
> найдете главного при выборе подчиненного. :)
да я уже начал с таблицами работать, а не с запросами (понимая, что это не круто, но начальство поставило конкретное ТЗ, переубедить не удалось).
Поэтому хотелось бы до конца разобраться именно с ТАБЛИЦАМИ.
А FlashFiler - это не очень то экзотика. Почти такое же как обычный TTable. Все методы те же.
Ну и возвращаясь к сути, сформулирую по-другому, чтобы можно было ответить не объёмно:
я могу делать так:
при открытии формы редактирования заказа в обработчике формы OnShow разрываю все связи мастер-деталь (чтобы можно было осуществить поиск), ищу последовательно начиная с "самой подчиненной", делаю везде БУКМАРКИ (т.к. после связывания таблицы вернуться на первые записи), потом устанавливаю прежние разорванные связи и иду по БУКМАРКАМ начиная с "самой главной".
Но разве нет более цивилизованных методов?
bushmen (2004-07-27 15:01:00) [22]> я задал простой вопрос ТЕОРЕТИЧЕСКИЙ с надеждой на то, что кто-
> то ткнёт пальцем
Вас уже ткнули туда, где копать: в каждой таблице связь "один к многим" поэтому используя в SQL-запросе выражение WHERE Вы всегда найдете главного при выборе подчиненного. :)
Sergey13 (2004-07-27 14:53:00) [23]2MORA (27.07.04 14:36) [17]
>а я задал простой вопрос ТЕОРЕТИЧЕСКИЙ
Вопрос то простой, но... объемный. 8-)
>кто-то ткнёт пальцем куа копать...
Пальцев не хватит, да и ногти уже в крови от тыканья... 8-)
К тому же такая экзотика как некий FlashFiler - фиг знает чего советовать.
MORA (2004-07-27 14:36:00) [24]
> bushmen © (27.07.04 14:32) [15]
> > MORA (27.07.04 14:24) [13]
>
> Ты хочешь, чтобы мы за тебя все написали, а ты только код
> скопировал? :)
если бы хотел, я бы кинул вам (Вам) свой код и предложил бы разбираться в нём.
а я задал простой вопрос ТЕОРЕТИЧЕСКИЙ с надеждой на то, что кто-то ткнёт пальцем куа копать...
MORA (2004-07-27 14:33:00) [25]
> Sergey13 © (27.07.04 14:28) [14]
добрейшей души чел.
bushmen (2004-07-27 14:32:00) [26]> MORA (27.07.04 14:24) [13]
Ты хочешь, чтобы мы за тебя все написали, а ты только код скопировал? :)
Sergey13 (2004-07-27 14:28:00) [27]2MORA (27.07.04 14:24) [13]
Ну разбирайся. Надоест - скажешь.
MORA (2004-07-27 14:24:00) [28]
> Sergey13 ©
дык хочется с табл. разобраться
Sergey13 (2004-07-27 14:21:00) [29]Ну дык и напиши запрос который вернет тебе все нужные реквизиты.
MORA (2004-07-27 14:18:00) [30]
> Про SQL ответь. Можно?
угу
Sergey13 (2004-07-27 14:12:00) [31]2MORA (27.07.04 13:45) [9]
>что-то само ну никак не хочет заполняться
Да что ты? Ну надо же? Свинство какое то! 8-)
Про SQL ответь. Можно?
MORA (2004-07-27 13:45:00) [32]
> TDBCombobox тебе поможет
я использую RXDBComboEdit
может я чего-то не понимаю, но у меня задача не выбрать "главную запись" и заполнить "подчинённые", а наоборот: заполнить главную по подчинённой.
что-то само ну никак не хочет заполняться
bushmen (2004-07-27 13:21:00) [33]> Sergey13 © (27.07.04 13:19) [6]
Да, похоже своим FlashFilter автор всех уже основательно доканал :)
bushmen (2004-07-27 13:20:00) [34]> MORA (27.07.04 12:08)
TDBCombobox тебе поможет
Sergey13 (2004-07-27 13:19:00) [35]2MORA
А твой FlashFiler позволяет использовать SQL?
DSKalugin (2004-07-27 12:53:00) [36]есть еще такие компоненты как TDBComboBox
это к вопросу о заполнении
MORA (2004-07-27 12:19:00) [37]
> как связаны
с пом. св-ва MasterSource
> Они сами "заполняются"
тогда как правильно заполнить св-ва ДБэдитов?
DSKalugin (2004-07-27 12:17:00) [38]значит надо именить порядок подчиненности
ПОМЕЩЕНИЯ --> ОБЪЕКТЫ --> ЗАКАЗЧИКИ
Читай подробно про связь между таблицами master/detail
а конкретней свойства
TDataSet.MasterSource
TDataSet.MasterFields
Соловьев (2004-07-27 12:13:00) [39]
> Проблемка в том, что таблицы связаны
как связаны?
Johnmen (2004-07-27 12:12:00) [40]Они сами "заполняются"