Форум » Clipper » Новые проблемы с CDX (SIX) » Ответить

Новые проблемы с CDX (SIX)

Лукашевский: Внезапно обнаружил, что если CDXный файл имеет то же имя, что и база, то его невозможно закрыть по SET INDEX TO или CLOSE INDEXES... И простейшая вроде бы задача удалить все CDXы превращается в солидное мероприятие с закрытием всех баз... Кто-нибудь уже сталкивался?

Ответов - 8

Andrey: Да я уже с таким сталкивался. Самый лучший способ это открывать индексный файл с другим именем, т.е. если база user.dbf то индекс user0.dbf Если не изменяет память в Клипере для CDX есть параметр SET AUTOPEN или SET AUTORDER

Dima: sx_autoOpen(.f.)

ort: Была и у меня такая проблема. А как использовать эти AUTOOPEN и AUTOORDER? Как называются эти функции?


Dima: ort пишет: А как использовать эти AUTOOPEN и AUTOORDER? Dima пишет: sx_autoOpen(.f.) и ни чего на автомате открываться не будет ;) ЗЫ Иногда доку читать полезно ;) Тот же *.ng например

ort: Dima пишет: Иногда доку читать полезно ;) Да я как раз перед этим читал доку и знаю как это полезно! Вот только sx_AutoOpen() из Six - я им не пользуюсь. Вот про стандартный DBFCDX хотелось бы узнать - в тех же *.ng ничего не нашел

Andrey: Про эту фичу еще в Магните на семинарах расказывали, и был такой Мирончиков, он вел некоторые семинары. У меня где-то были примеры с Магнита. А в стандартной доке помоему я их тоже не видел.

LYSK: В общем-то такое поведение движка и есть правильное, что за необходимость удалять CDX-индексы на открытых таблицах? А если оно в сети?

Лукашевский: LYSK пишет: В общем-то такое поведение движка и есть правильное Чтобы открывались индексы сами - бог бы с ними, поэтому наверное я и на sx_autoOpen(.f.) особого внимания не обратил - проблема в том, что закрыть их невозможно... и это неправильно. LYSK пишет: что за необходимость удалять CDX-индексы на открытых таблицах? А если оно в сети? Есть у меня в программе такая функция - при подозрении что индексы грохнулись чтобы не вручную удалять CDX (сам однажды, будучи у юзверя и решая проблемы глюков на автомате заработавшись написал в нортоновской строке DEL *.DBF и потом долго думал, дурак я или как?), а программа сама это делала (естессно, в монопольном режиме делается :-). Ещё пара функций есть одинаковой направленности - пользовательское изменение ширины полей и добавление полей в базу - так вот если по изменяемому полю индекс, удаление и пересоздание CDXов - самое то, а при добавлении поля просто необходимая вещь! В общем, переобозвал я индексные файлы от греха подальше, да и всё! Всем спасибо!



полная версия страницы