08.09.2008, 16:47 | #1 |
Участник
|
Delete Action. Максимальное кол-во таблиц.
Добрый день!
Столкнулся с проблемой добавления таблиц в Delete Action конкретной таблицы. Похоже нельзя добавить больше 70 таблиц. Может кто-то сталкивался с похожей проблемой? Если да, то как такое можно обойти, кроме как писать ворк араунд. Если есть ссылки на описание этой ситуации на майкрософтовской сайте, поделитесь, плз. Заранее спасибо и хорошего всем дня! |
|
08.09.2008, 16:55 | #2 |
Участник
|
Ого. 70 таблиц. Не кисло. А на какой это табличке у вас их столько, можно поинтересоваться?
Думаю, что там у вас тааак неслабо тормозит все при удалении записей из этой таблички... Советов давать не буду, кроме как ре-дизайна таблицы/delete actions. |
|
08.09.2008, 17:04 | #3 |
Участник
|
Это кастомизированная таблица и в ней всего два поля refTableId, refRecId. А эти вспомогательные таблицы используются для генирации XML документов и в них имеется внешний ключ на эту кастомизированную таблицу. Задумка такая, что при удалении записи в кастомизированной таблице, идет удаление по внешнему ключу из подчиненных таблиц. И всего то ничего, требуется всего 79 таблиц добавить. Но на цифре 70 произошло чудо ))
|
|
08.09.2008, 17:22 | #4 |
Участник
|
"Х-р-р-р-р!" - Сказала японская пила.
"Ага!" - Сказали суровые сибирские мужики. ИМХО. Если это предел на использование DeleteAction (я о таком не слышал, но вполне допускаю), есть вариант перекрытия метода delete(), а туда уж вставить стандартный switch (refTableId) и там уж обработать удаление. |
|
08.09.2008, 17:49 | #5 |
Участник
|
Попробовал на чистом сп 2 - работает отлично. Может версия клиента и кернела различалась. Но похоже вопрос снимается. Всем спасибо
зы. по поводу пилы - очень классное лирическое отступление)) |
|
08.09.2008, 17:49 | #6 |
Участник
|
Если есть tableid и recid то можно написать в методе delete() примерно следующий код и не потеть:
X++: public void delete() { Common record; ; ttsbegin; super(); record = new DictTable(this.RefTableId).makeRecord(); delete_from record where record.RecId == this.RefRecId; ttscommit; } |
|
|
|