|
|
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Подскажите. В курсоре храню выборку (join) по нескольким таблицам-справочникам Как узнать в Курсоре: удалена ли запись? Для таблицы - deleted()=.T. -> удалена А по курсору как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:16 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Запись чего? Курсора или приджойненной таблицы? Хотя Deleted() не нелает различий между таблицами и курсорами. Если нужно проверить запись в приджойненной таблице, то просто передай ее алиас в качестве параметра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:21 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Запись курсора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:24 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
По моему все работает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:28 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
http://]SET DELETED ON CREATE CURSOR C_wr (id I, name C(20)) FOR i=1 TO 10 c1 = "Строка " + PADL(STR(i,3),3,"0") INSERT INTO C_wr (id, name) VALUES (i, c1) ENDFOR BROWSE DELETE FROM C_wr WHERE id = 5 SET DELETED OFF BROWSE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:29 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Например: Главная таблица KVIT. в ней поля: id, id_1, id_2, id_3 и некоторые строки помечены на удаление Есть таблицы-справ. с записями: Т1: id_1, nnn Т2: id_2, mmm T3 id_3, ppp В результате выполнения запроса Код: plaintext 1. Получаю курсор abn, в котором НЕТ помеченных на удаление записей. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:38 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
startFOX...Получаю курсор abn, в котором НЕТ помеченных на удаление записей. Почему?Поставь SET DELETED OFF вначале и будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:41 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Или м.б. ты какую-то специфическую цель преследуешь? Но не говоришь об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:43 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Может быть чего-то не понимаю, но грид упорно не отражает помеченные на удаление... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:45 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
В Load-e формы напиши set delete off ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:50 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
startFOXМожет быть чего-то не понимаю, но грид упорно не отражает помеченные на удаление...Перед выполнением запроса: Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:52 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Вот этот запрос... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 11:57 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Ну и каков результат? Ты ведь не ответил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:00 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
записи из табл. KVIT, которые я отмечал на удаление, НЕ ПОМЕЧЕНЫ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:02 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
а почему они должны быть помечены ? из курсора-то их никто не удалял. если тебе нужно видеть что запись удалена из справочника - добавь в выборку deleted('KVIT') ну и работай с ним ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:11 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за невежество, а куда вставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:12 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
startFOXзаписи из табл. KVIT, которые я отмечал на удаление, НЕ ПОМЕЧЕНЫ!Разберем пример, в нем созаны два курсора, а затем осуществляется выборка: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: plaintext И обработали записи в SELECT-е. Заметим, запись с id=5 попала в запрос и теперь она не помечена на удаление. Потому что мы обрабатываем и помеченные записи, и рассматриваем их как обычные записи. Если убрать команду Код: plaintext Теперь задается вопрос: Какие ты записи хочешь увидеть в результатах запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:17 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
startFOXНапример: Главная таблица KVIT. в ней поля: id, id_1, id_2, id_3 и некоторые строки помечены на удаление Есть таблицы-справ. с записями: Т1: id_1, nnn Т2: id_2, mmm T3 id_3, ppp В результате выполнения запроса Код: plaintext 1. Получаю курсор abn, в котором НЕТ помеченных на удаление записей. Почему? И не получишь. Select-SQL отбирает не записи, а данные . Содержимое полей. На основании этих данных строится другая таблица . Select-SQL - это не фильтр, наложенный на исходные данные. Это именно другая таблица. А метка на удаление - это реквизит записи. НЕ данные. Поэтому она просто не может попасть в итоговую выборку. Кроме того, как правило, записи помеченные как удаленные вообще прячут. Для этих целей используют специальную настройку SET DELETED ON В результате, с точки зрения пользователя, установка метки на удаление воспринимается как реальное удаление записи, поскольку такая запись пропадает. PS: использовать функцию Deleted() - бессмысленно. Получишь полную ерунду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:17 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Понятно. А как же быть в такой ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:22 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
можно конечно вставить прямо в твой результирующий запрос но луче разбить запрос на 2 1. select * ,deleted() as pr_deleted from KVIT into cursor kvit_curs 2 твой запрос который уже делается не из KVIT , а из kvit_curs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:29 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
startFOXПонятно. А как же быть в такой ситуации? Вообще-то, обычно на записях помеченных как удаленные никакой логики не строят. "Умерла, так умерла". Такие записи вообще никуда не должны попадать. Тем более возникает не однозначность, если в одной таблице запись помечена как удаленная, а в другой - как не удаленная. Что должно быть установлено в итоговой выборке? Но если очень хочется, то обычно сначала делают запрос, добавляя в этот запрос коды записей исходных таблиц. Затем сканируешь итоговую выборку и по кодам записей ищешь соответсвующие записи исходных таблиц. Далее уже анализируй значение Deleted() для исходных таблиц и устанавливай нужное значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:30 |
|
||
|
Удалённые записи в Cursor-е
|
|||
|---|---|---|---|
|
#18+
Мне бы желательно визуально в гриде отразить: какие записи удалены, а какие нет. (если это конечно возможно без ввода дополнительного поля в таблицу) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:32 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=239&tid=1590950]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 317ms |

| 0 / 0 |
