Мы унаследовали таблицу с более чем 500 полями, и почти все из них проиндексированы.Мы пытаемся получить доступ к этой таблице через ODBC, но не можем из-за огромного количества индексов.
Мы ищем справку о том, как перебрать все поля, посмотреть, проиндексировано ли это, и удалить индекс, если оно есть..
Мы часами спотыкаемся и не делаем никакого прогресса, поэтому надеемся, что кто-то может помочь!
Мы открыты для плагинов или других решений, которые могут помочь, или просто для некоторых советов о том, каксделать это с помощью сценариев FileMaker Pro.
Заранее спасибо!
Бен
PS Мы на FileMaker Pro 17 для Windows Вот что мы пробовали: Мы пыталисьиспользуйте команду «Выполнить SQL» с функцией DROP INDEX, но, как представляется, она необходима для каждого поля, и для каждого поля требуется новый оператор Exectute SQL, что означает более 500 операторов.Это также проблема, потому что не все поля имеют индекс, поэтому те, которые не выдают ошибку, которая, кажется, останавливает выполнение скрипта.
ОБНОВЛЕНИЕ: Благодаря @AndreasTЯ смог заставить это работать!Я выделил элементы, которые были ключом.
ШАГИ 1. Создайте представление с полями, которые я хотел 2. Напишите скрипт (см. Ниже), чтобы получить переменную поля 3Зацикливать набор полей, отбрасывая поле с помощью Calculated SQL
Easy peezy!Еще раз спасибо, @AndreasT!Ты золотой бог!
Set Error Capture [ On ]
Set Variable [ $fieldlist; Value:FieldNames ( Get(FileName); “__BENTEST”) ]
Set Variable [ $fieldcount; Value:ValueCount($fieldlist) ]
Loop
Set Variable [ $counter; Value:$counter + 1 ]
Set Variable [ $fieldname; Value:GetValue($fieldlist;$counter) ]
Execute SQL [ ODBC Data Source: “FM_Constituents”; Calculated SQL Text: “DROP INDEX on Constituents.” & $fieldname ]
[ No dialog ]
Exit Loop If [ $counter = $fieldcount ]
End Loop