powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что со skip-ом
20 сообщений из 20, страница 1 из 1
Что со skip-ом
    #32689060
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На взгляд обычный цикл, но в чем загвоздка!!! Может кто то сталкивался? (копаюсь в чужом коде)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
sele used_nn && табл для отслеживания как скип скачет
zap
sele  14  && таблица из бызы
set order to ibdp
go top
do while .not.eof()
   m.slrec=recno()
*   clnnomb=nnomb
*   clnnom=nnom
*   if clnnomb='2400212' .or.clnnom='2400212' .or. m.slrec= 162 
*      set step on
*   endif
   sele used_nn
   seek m.slrec
   if .not.found()
      append blank
      repl used_nn.rec with m.slrec
      sele  14 
      do up4 && тут простой  математический пересчет по записям не скачу в таблице
   endif
   sele  14 
   set order to ibdp && для уверенности ;-))
   go m.slrec && для еще большей уверенности  8 -))
   skip
enddo
происходит примерно следующее:
Записи по индексу
162...169...170...173...113...114...174...289...172...171...165...166...167...168
когда врубаю set step он по ним идет (skip), а когда запускаю прогу перескакивает причем ровно на 14, т.е. с 162 на 168, где искать не знаю(комп перезагружал, монитор протирал ;-))
Какая то магия цифр...


Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689114
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-) Версия FoxPro
-) Текущая настройка SET COLLATE
-) Настройка SET COLLATE индекса ibdp (можно посмотреть по IDXCOLLATE())
-) Выражение индекса ibdp, его фильтры
-) Текущие фильтры (SET DELETED, SET FILTER, SET KEY)
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689132
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По теме:
1. Откуда знаешь, что оно "проскакивает" записи? "up4" явно не срабатывает или по "used_nn" отслеживаешь?
2. Переиндексировать не пробовал?
3. You can use SEEK only with indexed tables... (c) Help
4. Step у тебя внутри IF'a... ???
Но смысла все равно не вижу...

Не по теме:
Всего-навсего нужно выполнить "up4" для каждой записи? Ну так, если там точно ничего по записям не скачет, сделай:
Код: plaintext
1.
2.
3.
SELECT  14 
SCAN
    DO up4
ENDSCAN
Зачем мудрить с индексом "ibdp"? Или он с фильтром? Или еще чего? Тогда переиндексируй и сделай SCAN.
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689215
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир
Версия Fox 6.0 sp 4
SET COLLATE - machine
SET DELETE - on
ни филтров, ни ключей не наложено

2Redrik
1.Видно по used_nn(специально сделал чтоб посмотреть где скачет) и в таблице, в некоторых записях, где должны быть цыфры...нули
2. ibdp это тэг, зачем переиндексировывать?
3. по функции seek() дурака свалял...по locate та же история, но мне не надо индексировать used_nn! если только по номеру записи в used_nn ;-))
4. step видно в коде где врубаю

За scan cпасибо...ща попробую

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689292
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0. Для VFP 6 нужен SP5
2. Что с того, что тэг ? Если что-то не в порядке с индексным файлом 100% могут быть именно такие глюки! Возьми базу, которая открывается в 14-ой области и переиндексируй! Обязательно !
3. Хочешь seek - индексируй по полю rec !
4. Step я у тебя вижу... IF там зачем? Да и вообще - забудь про step !
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689300
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Чужой код - это песня! :-))) Когда-то копался в коде АРМа налоговой инспекции ;-) В результате время начисления пени сократилось с 40 минут до 50 секунд! Но пока "въехал" в их логику... У-у-у... ;-)
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689331
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grumax_user2 Владимир
Версия Fox 6.0 sp 4
SET COLLATE - machine
SET DELETE - on
ни филтров, ни ключей не наложено


Согласен с Redrik , нужен SP5 и переиндексация.

Эти "пропущенные" записи какой статус Deleted() имеют? Т.е. они имеют пометку о том, что они удалены?
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689411
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Reindex включил, один х... ...записи не имеют статус-пометку на удаление....SP 5 под рукой нет :-(( .... всё моя песня спета...силы на исходе...пойду сдаваться

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32689740
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grumax_user...всё моя песня спета...силы на исходе...пойду сдаваться...
Не! Не сдавайся! Еще не всё!!!
Возьми ту чёртову табличку (что в 14-ой области) и скопируй её куда-нибудь в сторонку без всяких IDX, CDX... т.е. чиста канкретный DBF ;-) И там, в сторонке, пройдись по ней SCAN'ом... Даже если у тебя на фоксе SP0 стоит, то всё равно должно сработать! :-))) Если не поможет - вываливай табличку сюда, ежели, она, конечно, не шибко гигантская ;-)
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691308
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вынес табличку в отдельный проект....там все нормально...фишка в том, что когда делаю scan по свободной таблице записей 308 и номер самой последней записи 308(правда я ее переносил sele...into tabl)...а когда делаю тоже самое с таблицей состоящей в *.dbc последней оказывается номер записи 334, хотя их тоже 308 и при set order to 0, brow в статус строке последняя тоже Record: 308/308 т.е. нет ли тут путаницы...может в *.dbc отслеживается номер записи который удален и при открытии таблицы записи смещаються и становяться невидимыми, типа ты их когда то удалил и они зарезервированы под удаленые ?? отсюда этот скачок(на 14 записей) и идет, хотя они не помечены...

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691320
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже у тебя повреждена структура таблицы. Необходимо удалить таблицу и создать ее заново!

От того, что таблица включена в DBC количество записей не изменяется.

Если не сложно, запакуй таблицу по которой идет неверный результат (вместе с индексом) и положи здесь во вложение.
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691337
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ента табличка...

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691351
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ента табличка...

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691421
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты послал ту таблицу где все в порядке? У меня в VFP6SP5 - все нормально:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL lnI
lnI= 0 
USE tdp2.DBF IN  0 
select tdp2
SCAN
	lnI=m.lnI+ 1 
	IF m.lnI<>Recno()
		?m.lnI,Recno()
	ENDIF
ENDSCAN

Все в порядке. Смотри что там у тебя в рабочей области 14. Не стоит вообще-то делать переключение по номеру рабочей области. Ты уверен, что в 14 рабочей области нужная тебе таблица?
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691593
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вставил Ваш scan и отключил индексы ...lnI=283#recno()=337...вот такая бяка. SP5 под рукой нет, но есть 8 фокс...обычно без первого SP лучше ничего не ставить :-)), да отдел вцелом должен перейти, а то я соло на 8 буду сидеть?...я конечно почитаю про 8 фокс в форуме...стоит переходить на 8-ку?

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691649
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вынес табличку в отдельный проект
переносил sele...into tabl
А просто скопировать нельзя?
Ну, "перенес" ты её SELECT'oм... Выслал сюда... А толку? Перенеслись-то нормальные записи :-( Вот и выходит - шлёшь сюда нормальную таблицу, а советы пробуешь на НЕнормальной!
Хотя, конечно, мнения тут у всех сходятся - "убитая" структура... Вот то, что у тебя SELECT "взял", то теперь и пользуй вместо исходной!
P.S. А исходную-то сохрани... Скопируй ! Мало ли что...
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691683
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Redrik
Понял тебя 30-й...но сюда Dp_22.zip выложил ту с которой работает проект и у Владимира все нормально...

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691746
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что со skip-ом
    #32691917
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
   sele used_nn
   seek m.slrec
   ...
   go m.slrec && для еще большей уверенности  8 -))



Так вот же ошибка: в одном случае seek slrec, а другом go - разница есть?
...
Рейтинг: 0 / 0
Что со skip-ом
    #32692014
Фотография Grumax_user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Анатолий Широков
Вы не правы seek идет в used_nn, а go в 14 области(tdp2).
Тема *думаю* закрыта, т.к. есть подтверждения что таблица работает. Пересоздам табличку и *.dbc...ошибка, которая хз где может чудесным образом исчезнет....предстоит серьезный разговор с админом, как бы 70Мb скачать :-))). Спасибо...

Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что со skip-ом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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