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

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

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

1. Выгнать всех юзеров из приложения.
2. СДЕЛАТЬ АРХИВ БАЗЫ!!!
3. Убедиться, что архив сделан :-)
4. Удалить все cdx-файлы.
5. Запустить приложение. Если запустится переиндексация — значит, сработало. Если нет — значит, не повезло. Тогда 5.1 восстановить базу из архива и искать другое решение проблемы.
не запускаеися
...
Рейтинг: 0 / 0
17.12.2009, 17:19
    #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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / обновить индексы у всех таблиц проекта / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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