Прошу сразу не пинайте ногами.
Приложение на D6 + Paradox: в приложении есть 5 Table, 5 DataSourse, 5 DBGrid. 3 комплекта (Table+ DataSourse+ DBGrid) представляют из себя справочники. Данные в 2 другие комплекта заносятся из этих 3 справочников с помощью lookup полей. Т.е. на этапе проектирования у меня таблицы через «MasterSource» и «MasterFields» не связаны. С этим все нормально. Реализую каскадное удаление записей, т.е. говорю — удалить запись в таблице первого уровня, программа удаляет все записи в дочерних таблицах и затем только удаляет в таблице первого уровня. Но что бы это провернуть таблицы должны быть связаны. Связываю их динамически:
Но не пошло, всем Table’ам свойству Active присваивается FALSE, т.е. они у меня становятся на форме в режиме runtime становятся неактивны, насколько я понял из-за Destroy т.е TableSotrudnik1 уничтожается.
Скажите пожалуйста что делаю неправильно!!!! Я практически в отчании.....
Re: Удаление связей в TTable
От:
Аноним
Дата:
02.03.04 00:33
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Прошу сразу не пинайте ногами. А>Приложение на D6 + Paradox: в приложении есть 5 Table, 5 DataSourse, 5 DBGrid. 3 комплекта (Table+ DataSourse+ DBGrid) представляют из себя справочники. Данные в 2 другие комплекта заносятся из этих 3 справочников с помощью lookup полей. Т.е. на этапе проектирования у меня таблицы через «MasterSource» и «MasterFields» не связаны. С этим все нормально. Реализую каскадное удаление записей, т.е. говорю — удалить запись в таблице первого уровня, программа удаляет все записи в дочерних таблицах и затем только удаляет в таблице первого уровня. Но что бы это провернуть таблицы должны быть связаны. Связываю их динамически:
А зачем спрашивается нагружать программу каскадным удалением, когда это все весьма просто реализуется на уровне Paradox-таблиц, надо только связать их соответствующими отношениями...
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Аноним, Вы писали:
А>>Прошу сразу не пинайте ногами. А>>Приложение на D6 + Paradox: в приложении есть 5 Table, 5 DataSourse, 5 DBGrid. 3 комплекта (Table+ DataSourse+ А>>DBGrid) представляют из себя справочники. Данные в 2 другие комплекта заносятся из этих 3 справочников с помощью А>>lookup полей. Т.е. на этапе проектирования у меня таблицы через «MasterSource» и «MasterFields» не связаны. С этим А>>все нормально. Реализую каскадное удаление записей, т.е. говорю — удалить запись в таблице первого уровня, А>>программа удаляет все записи в дочерних таблицах и затем только удаляет в таблице первого уровня. Но что бы это А>>провернуть таблицы должны быть связаны. Связываю их динамически:
А>А зачем спрашивается нагружать программу каскадным удалением, когда это все весьма просто реализуется на уровне А>Paradox-таблиц, надо только связать их соответствующими отношениями...
Т.е. вы имели в виду если буду установлены соответствующие связи, достаточно будет удалить одну запись в таблице верхнего уровня, и все записи в подчиненых таблицах удаляся сами????!!!!! Если так, то почему авторы книги которую я использую в виде помоши при написанни программы написали что именно программист должен сам реализовать каскадное удаление записей, а не сказали что все иак просто.
Здравствуйте, <Аноним>, Вы писали:
А>Внимание вопрос: КАК АННУЛИРОВАТЬ СВЯЗЬ, КОТОРУЮ Я УСТАНОВИЛ ДИНАМИЧЕСКИ???
Вместо разрыва связи ты убил сам объект. Аналогия: решил ты выкинуть человека из телефонной книжки. Но вместо того, чтобы лист вычеркнуть, пошел и застрелил его. Из помпового ружья. Молодец. Не, не дам я тебе свой телефон.
Теперь попробуй так:
form1.TableSotrudnik1.MasterSource:= nil;
И т.д.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, <Аноним>, Вы писали:
А>>Внимание вопрос: КАК АННУЛИРОВАТЬ СВЯЗЬ, КОТОРУЮ Я УСТАНОВИЛ ДИНАМИЧЕСКИ??? S>Вместо разрыва связи ты убил сам объект. Аналогия: решил ты выкинуть человека из телефонной книжки. Но вместо того, чтобы лист вычеркнуть, пошел и застрелил его. Из помпового ружья. Молодец. Не, не дам я тебе свой телефон. S>Теперь попробуй так: S>