powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / фокс 2.6 странная работа select
13 сообщений из 13, страница 1 из 1
фокс 2.6 странная работа select
    #35720758
BorisTheBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а кто-нибудь знает, почему в фоксе 2.6 запрос (1)

select count(*) from tab where status=4

не зависит от состояния set deleted

а запрос (2)

select count(*), status from tab group by status

зависит???

т.е. реально (1) выдает число 10398 как для set deleted off так и для set deleted on

а (2) выдает несколько строк среди которых та что для status=4 показывает разные значения
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35721005
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому, что надо использовать "правильный" синтаксис запроса с Group by, что бы не получать "косяков"
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35721007
BorisTheBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в смысле?
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35721321
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, разницы быть не должно. Разве что, вы выполняете запросы "в динамике". Т.е. какой-то другой пользователь в это же время удаляет/добавляет/изменяет записи.

Попробуйте подсчитать количество записей, помеченных как удаленные для status=4

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SET DELETED OFF
select tab
SET ORDER TO  0 
calculate cnt() to kol_del for deleted() and status= 4 
calculate cnt() to kol_all for status= 4 

?"Всего", m.kol_all
?"Удалено", m.kol_del
?"Осталось", m.kol_all - m.kol_del
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35721787
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BorisTheBlade,

select count(*), status from tab WHERE !DELETED() group by status
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35722998
BorisTheBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FAMBorisTheBlade,

select count(*), status from tab WHERE !DELETED() group by status

это я уже сделал, но мне непонятно почему два очень похожих запроса работают по разному и в документации об этом ничего нет. я совершенно случайно наткнулся на эту особенность или глюк уж не знаю.

написали бы, что результат select может быть непредсказуем в случае отсутствия явного указания deleted()

все выполнялось одним пользователем на локальной машине.
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35723005
BorisTheBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и кстати в microsoft foxpro оба представленных запроса работают корректно, в соответствии с установкой set deleted ...

похоже на глюк.
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35723012
BorisTheBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в смысле microsoft visual foxpro
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35723167
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторselect count(*) from tab where status=4
не зависит от состояния set deleted
Правильно этот запрос отрабатывает в FPD26, учитывая текущее значение sed deleted.
Ищите у себя косяк
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35723607
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 2.6 состояние set deleted должно учитываться.
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35724993
BorisTheBlade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сегодня еще раз попробовал:

set deleted off
select count(*) from tab && 10511
set deleted on
select count(*) from tab && 10511

close all
use tab
set deleted off
count to m.i && 10511
set deleted on
count to m.i && 10508

может это из-за индексов, есть несколько штук в том числе по deleted()?
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35725109
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для проверки кривых индексов попробуй их удалить и повторить тест.

Также возможно кривые сами таблицы. Перезалей данные в новую таблицу, удали парочку записей и повтори проверку.
...
Рейтинг: 0 / 0
фокс 2.6 странная работа select
    #35725612
alextashk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перестал использовать сложный Select с фильтром по Deleted()
после того как получил разные результаты (разница была только в том, что в одной таблице указатель стоял на помеченной на удаление, а при следующим запросе стоял на обычной записи).
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / фокс 2.6 странная работа select
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]