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

Откуда: Днестровск
Сообщений: 193
Ребяты, доброго вам времени суток!

Ситуация следующая:
Vfp 5.0
Таблица platej.dbf - ничего особенного несколько полей, одно из них MEMO.
Селект следующий:
Select platej.nomer,platej.ddata,plat.textname,banc.textname,platej.suma ;
  From platej Left Outer Join plat On platej.beneficiar=plat.kod ;
              Left Outer Join banc On plat.banc=banc.kod ;
 Where !Deleted() Into cursor a1

Все работает замечательно, но стоит мне удалить первую (именно первую) запись из таблицы platej командой delete, как этот же запрос ничего не выдает, хотя там еще есть несколько строк. Вновь запускаю Селект на исполнение и вуаля... результат есть. Причем такое поведение стабильно!!!
То есть после удаления первой строки в таблице получается следующее:
Close data all
Select ..................
результат пустой курсор
Select ..................
результат нормальный
и снова
Close data all
Select ..................
результат пустой курсор
Select ..................
результат нормальный

Что за ерунда? Может кто-то сталкивался?
Заранее спасибо!
15 апр 05, 10:26    [1470653]     Ответить | Цитировать Сообщить модератору
 Re: Непонятка с Select ....  [new]
Grumax_user
Member

Откуда: Россия,г. Кинешма
Сообщений: 147
2 kms_
IMHO лучше использовать SET DELETED ON, потому что тут не понятно для какой таблицы актуально !Deleted()

------------------------------------------------------------------------------------
Я во все дела суюсь -> всесторонне разовьюсь                                                         Visual FoxPro 8.0
15 апр 05, 10:33    [1470675]     Ответить | Цитировать Сообщить модератору
 Re: Непонятка с Select ....  [new]
kms_
Member

Откуда: Днестровск
Сообщений: 193
Так у меня и стоит
Set Deleted On
Просто Фильтр генерируется в зависимости от некоторых условий, а если эти условия не определены, то прога берет просто !Deleted() (типа вообще без фильтра). Я и не думал, что это может таким образом сказаться!!!
Убрал !Deleted() и заработало... но все равно не понятно поведение фокса, ведь второй же раз селект выдавал нормальный результат!!!
15 апр 05, 10:41    [1470707]     Ответить | Цитировать Сообщить модератору
 Re: Непонятка с Select ....  [new]
PaulWist
Guest
Действительно в 5-ке есть баг - установлен эксперимнтально, правда при JOIN , если отсутствует индекс типа INDEX ON DELETED() TAG Del, то выборка происходит неправильно, поэтому проиндексируй. Обсуждение смотри здесь http://forum.foxclub.ru/read.php?f=5&i=98845&t=98195
15 апр 05, 10:50    [1470735]     Ответить | Цитировать Сообщить модератору
 Re: Непонятка с Select ....  [new]
kms_
Member

Откуда: Днестровск
Сообщений: 193
PaulWist, спасибо ссылку обязательно посмотрю!

Да и Grumax_user'у тоже спасибо, а то я в своих размышлениях о сути происходящих вещей в фоксе совсем забыл Вас поблагодарить
15 апр 05, 11:01    [1470772]     Ответить | Цитировать Сообщить модератору
 Re: Непонятка с Select ....  [new]
Igor Korolyov
Member

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

Hi kms_!

Использовать Deleted(), RECNO() и им подобное в запросах нужно с ОЧЕНЬ большой осторожностью - в частности в многотабличных запросах ВООБЩЕ нельзя это использовать - независимо от версии фокса.
Если тебе нужно "пустое" условие, используй 1=1 или соответственно 1=2 (если нужно чтоб "ничего" не выбралось - только пустой курсор).

Posted via ActualForum NNTP Server 1.1

16 апр 05, 20:37    [1474067]     Ответить | Цитировать Сообщить модератору
 Re: Непонятка с Select ....  [new]
kms_
Member

Откуда: Днестровск
Сообщений: 193
Hi, Igor Korolyov!

Spasibo! Vse elementarno prosto! Ne dumal ne gadal ya, chto takoi strasnyi etot
!Deleted()
Dovolino chasto ego ispolizoval, no problem ne bylo! A tut...

P.S. izvinite za latinitsu, vremennye trudnosti s raskladkoi - uje ispravliaiu!
18 апр 05, 09:23    [1475101]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить