Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
У меня проблема!! Если использовать Locate for!!! то цикл валиться!! Вот пример куска кода!! В этом куске я сравниваю номера записей в полях типа(numeric) обоих таблиц! И потом все совпавшие запихиваю в один курсор а несовпавшие в другой соответственно! Если использовать locate for то на skipe внетреннего цикла выскакивает ошибка "End of file encountered"!!! Если же закоментить locate for то все работает!!! Почему?? Большое спасибо! ......................... create cursor Sootvetstvie; (nom_dela_Arch c(10), nom_delo_Kniga c(10)) create cursor NeSootvetstvie; (nom_dela_Arch c(10), nom_delo_Kniga c(10)) local max_zapArch select archive max_zapArch = reccount() go top for kn_arch = 1 to max_zapArch select archive X = str(nom_dela, 8) select kniga max_zapKniga = reccount() go top for kn_arch1 = 1 to max_zapKniga nom_deloChar = str(nom_delo, 14) Y = substr(nom_deloChar, 7, 8) locate for X = Y if found() kniga.date_fromArch select Sootvetstvie insert into Sootvetstvie(nom_dela_Arch , nom_delo_Kniga); values(X , Y) else select NeSootvetstvie insert into NeSootvetstvie(nom_dela_Arch , nom_delo_Kniga); values(X , Y) endif select kniga skip endfor select archive skip endfor .............................................. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 17:28 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Не проверял, но думаю так будет чуть красивее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 18:02 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ!! Конечно красота сильная штука..., но ещё если бы и работало!!! В курсор несоответствующих записей в одно из полей записывается одна и та же запись из таблицы!!(Есть догадки почему так происходит...но я толком не проверил так как записей в каждой из таблиц более 80000!!! Скорее всего это происходит из-за того что цепляется одна из записей в одной таблице и проверяется со всеми записями в другой и все это сваливается вкурсор!! Меня так не устраивает!! т.е получается так: 0001 1022 0001 1023 0001 5889 0002 2555 0002 7878 и.т.д!!! Народ ПОМОГИТЕ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 18:45 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
Sorry, внутренний scan лишний и y определять нужно только в случае нахождения соответствующей записи, но результат может быть только курсор, в котором одно из полей пустое (или не полностью дана задача). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 19:38 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
цикл валится, а не "валиться" таблиц - обеих, а не обоих. Что неправильно: 1. X и Y получаешь из строго определённых записей таблиц, во время "пробежки" указателя (по команде locate for) уже полученные X и Y не меняются, остаются соответствующими начальным записям. 2. После неуспешного locate указатель позиционируется на EOF , поэтому следующий skip однозначно даст ошибку. А чой-то, цифры из одной таблицы сравниваются с восемью последними из другой ?? Неясно - сравниваешь в записях таблиц с одинаковым номеном? Если так, то: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 19:39 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
в обоих варианта "скачет" указатель записи во втором переборе (в алиасе kniga): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Или два Скана, но без Locate, а просто сравнение строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 19:41 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 19:52 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
Может я торможу? Тяжелый день получился... Но, неужели нельзя без циклов? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 20:05 |
|
||
|
Locate for!!!
|
|||
|---|---|---|---|
|
#18+
>Redrik конечно можно и SELECTOM. А что бы все было в одном месте + учесть записи, которые есть в K, но нет в S и есть в S, но нет в K тогда: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2004, 22:02 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32592338&tid=1596208]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 366ms |

| 0 / 0 |
