Индексирование и сохранение VFP с включенным INDEX, пока существует CDX - PullRequest
0 голосов
/ 11 сентября 2018

Работая с VFP 9, я проиндексировал файл DBF по group (столбец в DBF), используя

 INDEX ON group TO group1

и записи в правильном порядке. Но затем, всякий раз, когда я закрываю и снова открываю DBF, индексация теряется (нет порядка на group) . Я нашел файл .CDX в той же папке, что и мои group.idx и dbf, и похоже, что он дает структуру DBF, но я не знаю, как ее изменить или увидеть.

Чтобы решить эту проблему, я стер файл CDX (конечно, всплывающее окно с ошибкой, потому что не смог найти .cdx) и использовал функцию COPY TO для сохранения индексированного DBF, но это не является реальным решением для проблема (это решение, упомянутое на форуме, но оно не кажется мне лучшим подходом). Я также пытался использовать функцию PACK в конце, непосредственно перед закрытием базы данных, но не работал для индексирования набора данных.

Помимо вышеупомянутого, я не смог найти никакого ответа на эту конкретную проблему в Интернете, поэтому я очень благодарен за любой комментарий, который поможет мне понять его и разрешить индексирование во время кодирования, и, конечно же, убедившись, что Индекс и изменения останутся на месте при закрытии базы данных. Большое спасибо заранее!

Дополнительный вопрос: обычно, когда я индексирую, я даю имя созданному файлу IDX, но при работе с аналогичными DBF я повторяю кодирование и индексирую по разным таблицам с одинаковым именем idx (поэтому я перезаписываю .idx каждый раз, думая, что он больше не нужен), но я действительно не знаю, может ли это вызвать у меня проблемы в будущем.

Обновление: Хотя я не мог решить проблему напрямую для конкретного DBF с помощью команд индексации и упорядочения, я использовал команду COPY TO, а затем вручную заменил новый ДБФ со старым.

Это может быть интересно для таких начинающих, как я: http://www2.hkedcity.net/sch_files/a/tps/tps-comp/visitor_cabinet/123570/db-ch05.pdf

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Помимо использования команды INDEX ON group TAG group1, когда вы (повторно) открываете файл, вам нужно выбрать индекс.Это можно сделать одним из двух способов.

Либо

USE filename
SET ORDER TO group1

, либо

USE filename ORDER TAG group1
0 голосов
/ 12 сентября 2018

IDX обычно не рекомендуется.Чтобы получить CDX (составной индекс), используйте этот немного другой синтаксис («TAG» вместо «TO»):

INDEX ON group TAG group1

Я бы также рекомендовал не использовать «группу»как имя поля / столбца, поскольку оно является зарезервированным словом в VFP.

...