powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выход за пределы базы
21 сообщений из 21, страница 1 из 1
Выход за пределы базы
    #38951494
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые форумчане! Помогите пожалуйста решить проблему, которой раньше не было:
Конструкция такая:
DO WHILE !EOF()
...
SKIP
ENDDO
Так вот стала появляться ошибка: "Данные за пределами допустимого" (или что-то вроде этого). Я знаю, что можно написать обработку с IF EOF(), но это огромная программа, целый АРМ, где сплошь и рядом такие конструкции со SKIP. Можно ли с помощью какой-нибудь настройки Фокса решить эту проблему. Ведь раньше-то все работало! Может быть какую-нибудь SET-ку написать?
Буду очень благодарна за помощь!
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951499
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно индекс попортился. Надо переиндексировать.

В такой конструкции
Код: sql
1.
2.
3.
4.
DO WHILE !EOF()
...
SKIP
ENDDO


не может быть этой ошибки. Если только внутри (в ...) еще раз SKIP не делается.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951559
Fffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Фоксе есть конструкция

Код: vbnet
1.
2.
3.
Scan
...
EndScan


, которая все это заменяет.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951560
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, дело в том, что из-под Фокса такой ошибки нет, а из ярлыка есть.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951565
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fffffffffffff, сделать дополнительную конструкцию - не проблема, если бы не масштабы исправлений. Непонятно вот что: ЕЩЕ МЕСЯЦ НАЗАД ВСЕ РАБОТАЛО И ТАКОЙ ОШИБКИ НЕ ВОЗНИКАЛО. Вообще АРМу несколько лет и не было проблем. А сейчас вдруг стала на этом месте возникать ошибка "Данные за пределами...".
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951571
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, если бы попортился индекс, то весь АРМ бы не стал работать.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951579
Фотография descent52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaZaus, может тогда табличку в студию? посмотрим
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951582
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaZausDima T, дело в том, что из-под Фокса такой ошибки нет, а из ярлыка есть.
Добивайся повтора ошибки в фоксе.
Фокс и "ярлык" один и тот же код выполняют? Одни и те же таблицы используют?

Как уже написал: скорее всего дело в испорченных индексах.

PS нет таких SET которые подобную ошибку уберут.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951626
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, а мог ли Фокс попортиться? Например, пропали dll-файлы из Widows...
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951635
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaZaus, если бы дллки пропали, то оно бы вообще не запустилось. У вас либо данные запороты, либо индексы. Пальцем в небо: может, антивирь мешает?
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951654
Fffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что вообще ярлык запускает?
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951659
Дед Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может в таблицах появились записи помеченные на удаление? Нужно проверить статус SET DELETED, может по этой причине и выдает количество записей одно (вместе с помеченными на удаление), а при выборке оказывается другое. Так же перед выполнением команд DO WHILE, желательно установить указатель записи в начало таблицы командой GO TOP IN WorkAlias
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951719
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fffffffffffff, в ярлыке прописан тока ехе-файл.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951723
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, а у вас лично уже была такая проблема?
Я почему сомневаюсь в порче индексов, потому что остальная-то часть АРМа работает...
Может ли так испортиться индекс, что что-то работает, а что-то не работает?
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951726
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дед Евгений, в этой таблице удаления не происходит. А GO TOP есть, как и положено.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951784
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaZausDima T, а у вас лично уже была такая проблема?
Я почему сомневаюсь в порче индексов, потому что остальная-то часть АРМа работает...
Может ли так испортиться индекс, что что-то работает, а что-то не работает?
Да - была, да - может так испортится что будет частично работать.

Надо решать проблему, а не доказывать что все работало и само-собой перестало. Чудес не бывает. Надо искать причину.

Если ошибка выходит на операторе SKIP то смотреть в какой таблице он выполняется, и какой индекс используется (если вообще используется). Дальше тест:
Код: sql
1.
2.
3.
4.
5.
6.
use BadTable
set order to BadIndex
go top
DO WHILE !EOF()
SKIP
ENDDO
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951817
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T, спасибо за помощь. Я обязательно попробую. А можно еще вопрос? Какой результат можно ожидать от теста?
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951831
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaZausDima T, спасибо за помощь. Я обязательно попробую. А можно еще вопрос? Какой результат можно ожидать от теста?
Ту же самую ошибку.

Ситуацию можно легко смоделировать: взять таблицу, создать индекс, сделать копию индекса (.CDX), удалить одну запись, сделать PACK, вернуть ранее скопированный индекс.

Если при открытии не указывается полный путь до файла, то тут еще может быть что используется DBF (или CDX) не из базы, т.е. в путях поиска находится другой одноименный файл. Например в папке где лежит EXE.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38951835
alextashk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaZaus,

Если ошибка вылезет - то нарушена целостность таблицы/индекса.
То что остальной АРМ работает - может он не обращается в конец таблицы.
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38952617
ElenaZaus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alextashk, всем спасибо. Тема закрыта. Дело оказалось в том, что программа пошла по недоотлаженной ветке. Прошу прощения за беспокойство!
...
Рейтинг: 0 / 0
Выход за пределы базы
    #38952701
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElenaZausДело оказалось в том, что программа пошла по недоотлаженной ветке.
Вместо
Код: sql
1.
2.
3.
4.
5.
6.
sele MyTable
go top
DO WHILE !EOF()
...
SKIP
ENDDO


лучше использовать
Код: sql
1.
2.
3.
4.
sele MyTable
Scan
...
EndScan


это тоже самое, только EndScan эквивалентен
Код: sql
1.
2.
3.
4.
5.
...
 if !eof()
   skip
 endif
enddo
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выход за пределы базы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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