Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
19.04.2011, 13:42
|
|||
|---|---|---|---|
Ошибка "Target table is already engaged in a relation " |
|||
|
#18+
Делаю в командном окне VFP9, может уже затупилось зрение... Таблицы все проиндексированы CLOSE TABLES ALL SELECT 0 USE dbfs\ispol SHARED ALIAS ispol SET ORDER TO ISP_ID && IIF(DELETED().OR.EMPTY(ISP_ID),"F","T")+STR(ISP_ID,7) SELECT 0 USE dbfs\sz_podp SHARED ALIAS sz_podp SET ORDER TO SZ_ID && IIF(DELETED().OR.EMPTY(SZ_ID),"F","T")+STR(SZ_ID,7) SET RELATION TO "T"+STR(ISP_ID,7) INTO ispol ADDITIVE SELECT 0 USE dbfs\opr_podp SHARED ALIAS opr_podp SET ORDER TO OPR_ID && IIF(DELETED().OR.EMPTY(OPR_ID),"F","T")+STR(OPR_ID,7) SET RELATION TO "T"+STR(ISP_ID,7) INTO ispol ADDITIVE SELECT 0 USE dbfs\opr SHARED ALIAS opr SET ORDER TO SZ_ID && IIF(DELETED().OR.EMPTY(SZ_ID),"F","T")+STR(SZ_ID,7) SELECT 0 USE dbfs\sz SHARED ALIAS sz SET ORDER TO SZ_ID && IIF(DELETED().OR.EMPTY(SZ_ID),"F","T")+STR(SZ_ID,7) SET RELATION TO "T"+STR(sz.sz_id,7) INTO sz_podp ADDITIVE SET RELATION TO "T"+STR(sz.sz_id,7) INTO opr ADDITIVE SELECT opr SET RELATION TO "T"+STR(opr_id,7) INTO opr_podp ADDITIVE GO TOP SELECT sz и вот в этой строке и выскакивает ошибка может примерно где искать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.04.2011, 13:54
|
|||
|---|---|---|---|
Ошибка "Target table is already engaged in a relation " |
|||
|
#18+
Попробуй в командной окне так: q1w1e1CLOSE TABLES ALL USE dbfs\ispol IN 0 SHARED ALIAS ispol SET ORDER TO ISP_ID USE dbfs\sz_podp IN 0 SHARED ALIAS sz_podp SET ORDER TO SZ_ID SET RELATION TO "T"+STR(ISP_ID,7) INTO ispol ADDITIVE USE dbfs\opr_podp IN 0 SHARED ALIAS opr_podp SET ORDER TO OPR_ID SET RELATION TO "T"+STR(ISP_ID,7) INTO ispol ADDITIVE USE dbfs\opr IN 0 SHARED ALIAS opr SET ORDER TO SZ_ID SET RELATION TO "T"+STR(opr_id,7) INTO opr_podp ADDITIVE USE dbfs\sz IN 0 SHARED ALIAS sz SET ORDER TO SZ_ID SET RELATION TO "T"+STR(sz.sz_id,7) INTO sz_podp ADDITIVE SET RELATION TO "T"+STR(sz.sz_id,7) INTO opr ADDITIVE SELECT sz GO TOP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2011, 05:19
|
|||
|---|---|---|---|
Ошибка "Target table is already engaged in a relation " |
|||
|
#18+
переписал... та же фигня CLOSE TABLES ALL USE dbfs\ispol IN 0 SHARED ALIAS ispol ORDER ISP_ID USE dbfs\sz_podp IN 0 SHARED ALIAS sz_podp ORDER SZ_ID USE dbfs\opr_podp IN 0 SHARED ALIAS opr_podp ORDER OPR_ID USE dbfs\opr IN 0 SHARED ALIAS opr ORDER SZ_ID USE dbfs\sz IN 0 SHARED ALIAS sz ORDER SZ_ID SELECT sz_podp SET RELATION TO "T"+STR(ISP_ID,7) INTO ispol ADDITIVE select opr_podp SET RELATION TO "T"+STR(ISP_ID,7) INTO ispol ADDITIVE select opr SET RELATION TO "T"+STR(opr_id,7) INTO opr_podp ADDITIVE select sz SET RELATION TO "T"+STR(sz.sz_id,7) INTO sz_podp ADDITIVE SET RELATION TO "T"+STR(sz.sz_id,7) INTO opr ADDITIVE ---<На этой строке выходит та же ошибка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2011, 05:23
|
|||
|---|---|---|---|
Ошибка "Target table is already engaged in a relation " |
|||
|
#18+
если эти строки поменять SET RELATION TO "T"+STR(sz.sz_id,7) INTO opr ADDITIVE SET RELATION TO "T"+STR(sz.sz_id,7) INTO sz_podp ADDITIVE <---то на этой строке выходит ошибка... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2011, 05:50
|
|||
|---|---|---|---|
Ошибка "Target table is already engaged in a relation " |
|||
|
#18+
Выяснил, всё зависит от этой строчки.. select opr_podp SET RELATION TO "T"+STR(ISP_ID,7) INTO ispol ADDITIVE комментируешь, нормально, снимаешь комент, переходишь на таблицу SZ, ошибка.. осталось понять почему нельзя устанавливать релэйшин двум разным таблицам на одну и ту же таблицу... ну и обойти проблему... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2011, 07:04
|
|||
|---|---|---|---|
Ошибка "Target table is already engaged in a relation " |
|||
|
#18+
q1w1e1осталось понять почему нельзя устанавливать релэйшин двум разным таблицам на одну и ту же таблицу... ну и обойти проблему... Вполне логично что ошибка происходит, хуже было бы если такое было возможным. Связка по set relation означает что при перемещении по родительской таблице автоматом перемещается указатель текущей записи в дочерней. Соответственно при наличии двух родительских указатель должен стоять одновременно на двух разных записях, что в принципе невозможно. Зачем вообще тебе SET RELATION ? От него польза только в одном месте - если исходные таблицы в гриде показываешь, в остальных случаях можно без него обойтись. При установленной SET RELATION надо следить чтобы текущий индекс не менялся, сменить его тоже нельзя. Далеко не всегда нужно перемещение указателя в привязанной таблице, чаще это неважно, просто код выполняет некоторые бесполезные действия, а иногда это мешает и приходится изобретать обход этого эффекта. Гораздо удобнее непосредственно перед расчетом установить все указатели в справочниках. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.04.2011, 07:43
|
|||
|---|---|---|---|
Ошибка "Target table is already engaged in a relation " |
|||
|
#18+
спасибо, скорей всего ссылаться на одну и ту же таблицу можно, но нельзя делать дочерними, ссылающиеся на одну и туже таблицу, одного и того же родителя..., :-), вроде так А relation это дело вкуса и привычки... я ими пользуюсь много лет и неудобств не испытываю ...:-)(вот только сейчас споткнулся, ну это ерунда откроем againом таблицу и всё Ok...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1584423]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 313ms |

| 0 / 0 |
