Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Помеченные записи на удаление  [new]
tem@
Member

Откуда: Планета Земля
Сообщений: 79
Как узнать что в таблице есть помеченные записи на удаление???
30 мар 06, 12:28    [2506128]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
Станислав C.
Member

Откуда: Екатеринбург
Сообщений: 1030
tem@
Как узнать что в таблице есть помеченные записи на удаление???

Варианты:
1. locate for deleted()
2. select count(*) as cnt from <> where deleted()
3. count for deleted() to aaa
30 мар 06, 12:37    [2506188]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
Vladimir M Sklyar
Member

Откуда: Украина, Конотоп
Сообщений: 649
А главное перед этим не забыть поставить:
SET DELETE OFF

Posted via ActualForum NNTP Server 1.3

30 мар 06, 14:06    [2506783]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
alex11100
Guest
создается табличка
в ней два индекса

первый for !dele()
второй for dele()

табличка открывается
use табличка order первый
use табличка order второй again alia 'удаленные'


чтобы посмотреть есть ли удаленные достаточно
if recn('удаленные')>0
messagebox('Есть')
endif
30 мар 06, 14:25    [2506878]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
alex11100
Guest
или

if !bof('удаленные') and !eof('удаленные')
messagebox('Есть')
endif
30 мар 06, 14:26    [2506887]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi alex11100!

> создается табличка
> в ней два индекса
> первый for !dele()
> второй for dele()

Это надеюсь было сказано в порядке бреда?

Posted via ActualForum NNTP Server 1.3

2 апр 06, 20:09    [2515588]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
alex11100
Guest
ага, бредил 12 лет так
3 апр 06, 10:51    [2516706]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
alex11100
Guest
а дергать set dele не бред?
3 апр 06, 10:53    [2516719]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
CREATE CURSOR test (nn n(1))
INSERT INTO test (nn) VALUES (1)
INSERT INTO test (nn) VALUES (2)
INSERT INTO test (nn) VALUES (3)
INSERT INTO test (nn) VALUES (4)
SELECT test
GO TOP
DELETE
SET DELETED ON
a=RECCOUNT()
COUNT TO b
?a-b  &&returns 1
3 апр 06, 12:20    [2517197]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi alex11100!

1) Куда попадёт указатель записи в "удаленные", если удалённых записей нет?
Так что вариант с recn('удаленные')>0 идёт в сад
2) Куда попадёт указатель записи в "удаленные", если удалённые записи есть,
но действует установка SET DELETED ON?
Вариант с !bof('удаленные') and !eof('удаленные') отправляется вслед за
первым.
3) Что произойдёт, если мы после указанного открытия 2-х курсоров (в таблице
изначально не було удалённых записей) удалим запись в первом из них? Когда,
при каких обстоятельствах мы увидим хоть какие-то изменения в курсоре
"удаленные"? Или может быть нам строит при КАЖДОМ обращении к этому курсору
его закрывать и снова открывать?
4) Можно ли нормально работать в фоксе, если в таблицах есть удалённые
записи, при этом эти записи НЕОБХОДИМО игнорировать, НО в программе
установлено SET DELETED OFF.
И ещё один риторический вопрос - что является большим извращением -
переключится временно на SET DELETED OFF, когда нужно найти удалённые
записи, или ПОСТОЯННО работать с установкой SET DELETED OFF. Учитывая
конечно тот простой факт, что в большинстве SQL запросов (кроме
примитивнейших однотабличных) ТОЛЬКО установка SET DELETED ON позволяет
получать предсказуемые и корректные результаты.
5) Будет ли фокс использовать индекс с FOR для оптимизации?

Думаю теперь моя позиция будет совершенно понятна, а твоя существенным
образом изменится :)

Posted via ActualForum NNTP Server 1.3

4 апр 06, 02:35    [2519984]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
alex11100
Guest
Можно ли нормально работать в фоксе, если в таблицах есть удалённые
записи, при этом эти записи НЕОБХОДИМО игнорировать, НО в программе
установлено SET DELETED OFF

работал и успешно
и еще как работал
и до сего дня работает без меня - сам удивляюсь
4 апр 06, 16:57    [2523145]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
alex11100
Guest
давайте останемся при своих мнениях
уже пальцы болят пример писать

когда-то уже спорили
4 апр 06, 16:59    [2523160]     Ответить | Цитировать Сообщить модератору
 Re: Помеченные записи на удаление  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi alex11100!

>> Можно ли нормально работать в фоксе, если в таблицах есть удалённые
>> записи, при этом эти записи НЕОБХОДИМО игнорировать, НО в программе
>> установлено SET DELETED OFF

> работал и успешно

CREATE TABLE t1 (ID1 I, Name C(40))
CREATE TABLE t2 (ID2 I, Name2 C(40))
FOR ln1 = 1 TO 10
INSERT INTO t1 (ID1, Name) VALUES (m.ln1, "Это запись таблицы 1 с ID1 =
" + TRANSFORM(m.ln1))
INSERT INTO t2 (ID2, Name2) VALUES (m.ln1, "Это запись таблицы 2 с ID2 =
" + TRANSFORM(m.ln1))
ENDFOR
* Из первой удалим указанные записи
DELETE FROM t1 WHERE ID1 IN (1,3,5)
* Из второй удалим указанные записи
DELETE FROM t2 WHERE ID2 IN (1,4,7)

SET DELETED ON
SELECT * ;
FROM t1 ;
INNER JOIN t2 ;
ON t1.ID1 = t2.ID2
* Имеем 5 записей - с кодами 2, 6, 8, 9, 10
* во всех записях оба поля NAME1 и NAME2 заполнены

SELECT * ;
FROM t1 ;
LEFT JOIN t2 ;
ON t1.ID1 = t2.ID2
* Имеем 7 записей - с кодами 2, 4, 6, 7, 8, 9, 10
* поле NAME1 заполнено везде, а NAME2 не заполнено в 4 и 7.

SET DELETED OFF
* Ну а теперь пиши свой код, выполняющий то-же самое, с таким-же
результатом - т.е.
* "игнорирующий" удалённые записи - конечно работающий при установке SET
DELETED OFF

Если не получится, то видимо следует признать, что ты был не прав. Как я
понимаю по всем остальным пунктам ты уже молча признал свою неправоту - так
что дело осталось за малым :)

Posted via ActualForum NNTP Server 1.3

5 апр 06, 02:04    [2524751]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить