
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.01.2017, 13:04
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
Прохожу scan по записям, типа такого: SCAN IF something DELETE NEXT 1 ENDIF ENDSCAN и допустим удаляю текущую запись коммандой DELETE NEXT 1 Хочу понять - что произойдет с курсором - не сместится ли он на след.запись? Не получится ли так, что при удалении я проскочу след. запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2017, 13:22
|
|||
|---|---|---|---|
|
|||
Удаление записи во время scan |
|||
|
#18+
Eugene7, не сместится. Но лучше вjобще отказаться от цикла и написать delete from ... where something И никаких тайных перемещений :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2017, 13:23
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
NEXT 1 лишнее и явно указывай где удаляешь, а то случайно текущую таблицу сменишь и удалишь не там где надо Код: sql 1. Если код выглядит именно так, то SCAN не надо, можно так Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.01.2017, 13:37
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
В scan намного больше кода, это я для примера привел. Спасибо всем за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.01.2017, 21:44
|
|||
|---|---|---|---|
|
|||
Удаление записи во время scan |
|||
|
#18+
провели бы эксперимент сами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 07:59
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
может и сместиться..:-), если таблица открыта с индексом или фильтр по del стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 08:20
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
q1w1e1может и сместиться..:-), если таблица открыта с индексом или фильтр по del стоит Не сместится. Запись пометится на удаление, но указатель останется на ней. И с этой записью даже можно поработать. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 10:51
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
Да, курсор останется на записи, а сама запись может сместиться, подняться наверх или спуститься и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 11:40
|
|||
|---|---|---|---|
|
|||
Удаление записи во время scan |
|||
|
#18+
q1w1e1Да, курсор останется на записи, а сама запись может сместиться, подняться наверх или спуститься и т.д.Не порите чушь, ей больно. Записи не перемещаются в принципе. Меняется порядок их об обхода в соответствии с индексами и фильтрами, но не более того. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 12:38
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
Ну смотря что назвать перемещением, если вы имеете нумерацию записей, да, она не изменяется... В данном случае я вижу на мониторе таблицу, делая удаление, запись для меня переместилась вверх(так как настроен индекс)... Как Вы это назовёте, порядком обхода или ещё как это ваше личное дело... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 12:51
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
q1w1e1делая удаление, запись для меня переместилась вверх(так как настроен индекс)... Как Вы это назовёте, порядком обхода или ещё как это ваше личное дело... Такое может произойти только если в индексном выражении участвует DELETED() и этот индекс активен. Во-первых обычно DELETED() не используют в индексном выражении. Во-вторых в документации по SCAN написано что нельзя внутри цикла менять поля участвующие в индексном выражении, что в данном случае происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 12:58
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
Если сильно хочется, то можно, начиная с клипера, приводились такие примеры, они и сейчас у меня работают в индексном выражении (iif(deleted(),"F","T"))+ и т.д. Так что я и написал, что есть иногда такие случаи, при нерекомендуемом подходе программирования.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.01.2017, 13:42
|
|||
|---|---|---|---|
|
|||
Удаление записи во время scan |
|||
|
#18+
To q1w1e1. Сударь, давайте не придумывать свои интерпретации терминов вместо тех, что уже установились в практике общения специалистов в данной области знаний. И это не мое личное дело, а ваше, если вы, конечно, хотите, чтобы ваши изречения понимали правильно. Перемещение записи - изменение места записи в файле. Изменение места записи на экране - изменение отображения записи. Отображение зависит от порядка обхода в соответствии с активным индексом. При отображении, кстати, происходит неявное перемещения указателя. Еще раз отмечу - при отображении. Которого в любом цикле может и не быть и тем более его нет при выполнении команды delete. То есть ваши замечания про монитор и то, что на нем вы видите, тут совершенно не в кассу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.01.2017, 06:11
|
|||
|---|---|---|---|
Удаление записи во время scan |
|||
|
#18+
Пустой спор с правильным специалистом, который фанатчно верит в свою правильность.. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Что можно делать, что нельзя делать, вопрос философский и каждый решает сам, для меня делать можно всё, что не вызывает сообщение об ошибке VFP, и если так делать нельзя, то разработчики VFP, давно бы это пофиксили... В общем я остался при своём мнении ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B448&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 463ms |
| total: | 740ms |

| 0 / 0 |

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