powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как убрать все индексы у таблиц программно (VFP 8) ?
17 сообщений из 17, страница 1 из 1
Как убрать все индексы у таблиц программно (VFP 8) ?
    #32876289
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #32876312
alexFV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DELETE TAG ALL может поможет?
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #32876316
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. help по alter table
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #32876418
Фотография Vladimir M Sklyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем.

PS чего-то туплю уже под конец недели

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33566672
Здравствуйте!
Подскажите пожалуйста как удалить индексы из таблицы, ну например, которые начинаются на "А1". Delete tag здесь не прокатывает, т.к. можно удалить только перечисленные индексы (имена индексов) или сразу все ALL.
Буду очень благодарен, кто подскажет как тут быть! Спасибо.
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33566944
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
ATAGINFO(ArrayName [,cCDXName [, nWorkArea | cTableAlias]])

Дальше разберешься или код рисовать.
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33567298
PaulWist
Код: plaintext
ATAGINFO(ArrayName [,cCDXName [, nWorkArea | cTableAlias]])

Дальше разберешься или код рисовать.


Что то, к сажалению, не совсем получается! У меня дело в том, что идексы эти создаются программно, когда я выполняю сортировку,

if .not.empty(j)
i=loc_main+substr(sys(2015),2)
x_recno=recno()
this.del_index = i
if empty(x_kuda)
index on &j tag (i)
This.Columns[u_order].Text1.Tag='@'+j+';'+i
else
index on &j tag (i) DESCENDING
This.Columns[u_order].Text1.Tag=This.Columns[u_order].Text1.Tag+';'+i
ENDIF
ENDIF
А удалять мне его нужно при Destroy, т.е. при выходе из объкта!
_del=this.del_index
SELECT (this.RecordSource)
DELETE TAG &_del
удаляется, только последний, используемый индекс.
Напиши, если сможешь поподробнее
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33567428
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп-стоп, зачем удалять индексы после сортировки, они ведь могут понадобится в следующий раз, это во первых, во вторых на табличке в пару млн записей представляешь сколько будет занимать времени новое индексирование, если используешь LV/RV/CURSOR/SELECT SQL, то это занятие бессмысленное, поскольку индексы удалятся сами.

Если очень хочется, то вот код

Код: 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.
CREATE CURSOR test (fld1 i, fld2 i)

INDEX ON fld1 TAG ('a' + SUBSTR(SYS( 2015 ), 2 ))
INDEX ON fld2 TAG ('b' + SUBSTR(SYS( 2015 ), 2 ))

? 'Index number = ' + TRANSFORM(ATAGINFO(Arr))

FOR i =  1  TO ATAGINFO(Arr)
	? 'Index ¹ ' + TRANSFORM(i)
	? 'Name =' + TRANSFORM(Arr(i))
* обращаю внимание, что ATAGINFO возвращает строку в верхнем регистре
	IF LEFT(Arr(i), 1 ) == 'A'
		DELETE TAG (Arr(i)) 
	ENDIF 
ENDFOR 

? '----------- after deleting'
? 'Index number = ' + TRANSFORM(ATAGINFO(Arr))

FOR i =  1  TO ATAGINFO(Arr)
	? 'Index ¹ ' + TRANSFORM(i)
	? 'Name =' + TRANSFORM(Arr(i))
ENDFOR 

?ATAGINFO(Arr)
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33567480
Большое спасибо! Сейчас попробую!
А индексы мне действительно нужно удалить, т.к. при каждой сортировке, у меня они заново создаються.
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33567563
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попов АнатолийБольшое спасибо! Сейчас попробую!
А индексы мне действительно нужно удалить, т.к. при каждой сортировке, у меня они заново создаються.

Ну упёртый ты, так проверь наличие индекса перед тем как его создавать, если он уже есть, то зачем его создавать просто используй его.
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33567811
Впринципе, ты прав! Потом тормоза полезут, лучше оставлю я эти индексы, просто я давно с foxom не общался, а сейчас пришлось! Всеравно спасибо огромное!
Вот у меня еще один вопрос, по созданию отчетов!
Я форму отчета накидал, все вроде круто, данные беру сразу из базовой таблицы, но возникла такая проблема, что когда таблица открыта он выдает ошибку, что таблица используется, впринципе все правильно! Я думаю здесь сделать по-другому, через select, тем более, мне как раз придется накладывать условия на таблицу, так то бы пришлось через фильтр, а так думаю еще проще, темболее условия не сильно замудренные! ну вот например
SELECT * from child_data WHERE pol = 'Ж' ORDER BY fam INTO CURSOR rep1
Только я плохо представляю как связать мою готову форму отчета с этим курсором! Т.е. форма одна на 8 отчетов (одинаковая структура) только разные данные (всмысле запросы). Как это реализовать, чтобы вызывались эти отчеты из меню, наверное думаю надо писать это в Prg-ке!
Может у вас есть какие лучше предложения как это вообще все реализовать. Я думаю что это не сложно, просто я недавно стал работать с FoxPro. Кстати у меня 8-ка!
Заранее огромное спасибо!
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33567887
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попов Анатолий Вот у меня еще один вопрос, по созданию отчетов!
Я форму отчета накидал, все вроде круто, данные беру сразу из базовой таблицы, но возникла такая проблема, что когда таблица открыта он выдает ошибку, что таблица используется, впринципе все правильно!

Да чего уж тут правильного если таблица занята, надо сделать в форме настройку SET EXCLU OFF

Попов Анатолий Я думаю здесь сделать по-другому, через select, тем более, мне как раз придется накладывать условия на таблицу, так то бы пришлось через фильтр, а так думаю еще проще, темболее условия не сильно замудренные! ну вот например
SELECT * from child_data WHERE pol = 'Ж' ORDER BY fam INTO CURSOR rep1
Только я плохо представляю как связать мою готову форму отчета с этим курсором! Т.е. форма одна на 8 отчетов (одинаковая структура) только разные данные (всмысле запросы). Как это реализовать, чтобы вызывались эти отчеты из меню, наверное думаю надо писать это в Prg-ке!

1. Надо отчету указать сессию данных с которой будет работать отчет SET DATASESSION TO, если хочешь через фильтр, либо передать отчету условие фильтрации или выборки (но это отдельный разговор)
2. В init-e DE отчета сделать необходимый SELECT .... INTO CURSOR, а отчет построить на основе курсора
3. Если хочешь через меню, то можно , правда там есть свои особенности.
3.
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33569528
Спасибо, попробую! А не подскажете как проверить существует ли индекс!
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33569569
Кстати, если конечно можешь, подробнее опишите:

2. В init-e DE отчета сделать необходимый SELECT .... INTO CURSOR, а отчет построить на основе курсора
3. Если хочешь через меню, то можно , правда там есть свои особенности.

Т.е. я как понял сам select прописывается в inite event, а как именно построить на основе этого курсора?
И по 3-му пунку, если можно поподробнее!

Можно даже примерчик скинуть, буду просто очень-очень благодарен!
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33572376
Привет всем! У меня вот такая проблемка, вроде и не сложная, но что-то дадуть не могу как это сделать, используя стандартные функции для работы с датами! Проблема: есть дата рождения day и дата смерти day_out. По мед. стандартом, если ребенок умер до года то это значит, что day_out - day <= 11 месяцев 29 дней! И только так, переводить месяцы в дни нельзя! :( Если знает как это сделать подскажите пожалуйста!
Заранее благодарен!
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33578620
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Анатолий!

ATAGINGO() или для старых версий фокса TAGCOUNT()+TAG() и получая таким
образом списко тегов уже составить список для удаления.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Как убрать все индексы у таблиц программно (VFP 8) ?
    #33578760
Igor Korolyov
Hi Анатолий!

ATAGINGO() или для старых версий фокса TAGCOUNT()+TAG() и получая таким
образом списко тегов уже составить список для удаления.

Posted via ActualForum NNTP Server 1.3

Спасибо Игорь! У меня получилось!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как убрать все индексы у таблиц программно (VFP 8) ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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