powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / обновить индексы у всех таблиц проекта
6 сообщений из 6, страница 1 из 1
обновить индексы у всех таблиц проекта
    #36371864
GoToNext
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
есть база написанная много лет назад
и стабильно работающая... но сегодня у не рухнули индексы у всех таблиц
фокс про я увидел первый раз в жизни,
подскажите какую команду использовать или что нажать
чтобы обновить индексы сразу у всех таблиц
а то по одной очень долго
спасибо!
...
Рейтинг: 0 / 0
обновить индексы у всех таблиц проекта
    #36371907
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таковой нет. Для каждой таблицы придется давать отдельную команду. Хотя, разумеется, можно написать процедуру, которая будет делать то же самое. Перебирать все таблицы и пересоздавать для них индексы.

Вообще-то, поскольку повреждение индексов - это довольно частая проблема при работе с файлами DBF, то в приложении обязательно должен быть отдельный пункт меню или отдельная программа, которая именно это и делает. Поищите у себя.
...
Рейтинг: 0 / 0
обновить индексы у всех таблиц проекта
    #36371969
GoToNext
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ,
я фокс увидел первый раз, проект как устроен не знаю и
где искать не представляю...
может скрипт какой существует
...
Рейтинг: 0 / 0
обновить индексы у всех таблиц проекта
    #36372032
Довольно часто встречал такую организацию приложения: если при попытке открыть таблицу приложение натыкается на отсутствие индексов, оно автоматом запускает процедуру переиндексирования. Следовательно, для восстановления индексов напрашивается такой метод:

1. Выгнать всех юзеров из приложения.
2. СДЕЛАТЬ АРХИВ БАЗЫ!!!
3. Убедиться, что архив сделан :-)
4. Удалить все cdx-файлы.
5. Запустить приложение. Если запустится переиндексация — значит, сработало. Если нет — значит, не повезло. Тогда 5.1 восстановить базу из архива и искать другое решение проблемы.
...
Рейтинг: 0 / 0
обновить индексы у всех таблиц проекта
    #36372114
GoToNext
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШестипаловДовольно часто встречал такую организацию приложения: если при попытке открыть таблицу приложение натыкается на отсутствие индексов, оно автоматом запускает процедуру переиндексирования. Следовательно, для восстановления индексов напрашивается такой метод:

1. Выгнать всех юзеров из приложения.
2. СДЕЛАТЬ АРХИВ БАЗЫ!!!
3. Убедиться, что архив сделан :-)
4. Удалить все cdx-файлы.
5. Запустить приложение. Если запустится переиндексация — значит, сработало. Если нет — значит, не повезло. Тогда 5.1 восстановить базу из архива и искать другое решение проблемы.
не запускаеися
...
Рейтинг: 0 / 0
обновить индексы у всех таблиц проекта
    #36372205
GermanGM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GoToNext,

Если не выпрыгнет ошибка об инвалидности DataBase to попробуйте...
распаковать не сильно древнюю копию БД в каталог, который указан в переменной cDrv1
путь к самой базе - в cDrv (см ниже....) С ОБЯЗАТЕЛЬНЫМ ПРЕДВАРИТЕЛЬНЫМ КОПИРОВАНИЕМ того, что от нее осталось :)

Код: 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.
close data all
set notify off
set safety off
set excl on
on error *
cDrv=<Путь к поврежденной БД>
cDrv1=<Путь к копии с целыми индексами>
set defa to (cDrv)
nFileCount=adir(aBD,[*.dbf])
for nCounter= 1  to alen(aBD)/ 5 
 if file(cDrv1+(abd(nCounter, 1 )))
  select  1 
  use (aBd(nCounter, 1 )) excl
  use cDrv1+(abd(nCounter, 1 )) in  2 
  z= 1 
  do while !empty(sys( 14 ,z, 2 ))
   cExpr=[index on ]+sys( 14 ,z, 2 )+[ tag ]+tag(z, 2 )+IIF(empty(for(z, 2 )),[],[ for ]+for(z, 2 ))
   &cExpr
   z=z+ 1 
  enddo
  use in  1 
  use in  2 
 endif
next
on error
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / обновить индексы у всех таблиц проекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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