powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Два простых индекса - два мира, два детства
19 сообщений из 19, страница 1 из 1
Два простых индекса - два мира, два детства
    #33110906
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята! Всем привет!

Вопрос простой.

Есть 2 простых индекса. Делается новая запись при активном первом индексе.
Естественно при SEEK она при первом индексе (SET INDEX TO 1) ловится, при втором - нет.
Вопрос следующий- можно ли без переиндексации по второму сделать так, что бы второй индекс тоже перестроился автоматом?

И второй вопрос - новая позиция не ловится - это понятно, но нет ли засад с поиском старых позиций (нет ли смещения по ним)?
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33110939
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdSyzВопрос следующий- можно ли без переиндексации по второму сделать так, что бы второй индекс тоже перестроился автоматом?

Переиндексация ВСЕХ индексов при добавлении записи - автомат
IdSyzЕстественно при SEEK она при первом индексе (SET INDEX TO 1) ловится, при втором - нет.
поэтому приводите свой код (пополнее) в студию
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33110942
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Ts
Переиндексация ВСЕХ индексов при добавлении записи - автомат

естественно, если соотв. файлы подключены
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33110948
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда вопрос непростой.
После
set index to 1
flock()
append blank
replace field with "skahceg"
rlock

seek(&"skahceg")

&& found() = .T. !!!

set index to 2
seek(&"skahceg")

&& found() = .F. !!!

Значит, гадском королевстве - в смысле, в проге!
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33110969
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HELP: SEEK()

SEEK(eExpression [, nWorkArea | cTableAlias
[, nIndexNumber | cIDXIndexFileName | cTagName]])
...
nIndexNumber Specifies the number of the index file or tag that is used to search for the index key. nIndexNumber refers to the index files as they are listed in USE or SET INDEX. Open .IDX files are numbered first in the order in which they appear in USE or SET INDEX. Tags in the structural .CDX file (if one exists) are then numbered in the order in which they were created. Finally, tags in any open independent .CDX files are numbered in the order in which they were created. For more information about index numbering, see SET ORDER.
...
cTagName Specifies a tag of a .CDX file that is used to search for the index key. The tag name can be from a structural .CDX file or any open independent .CDX file.

Note The .IDX file takes precedence if duplicate .IDX file and tag names exist.
Remarks
...
If you omit the nIndexNumber, IDXIndexFileName, and cTagName arguments, SEEK( ) uses the master controlling index or index tag to search for the index key.
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111100
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Если индексные файлы типа IDX, то переиндексация обязатльна, если это CDX- то все автомат.
2. А почему должен второй поиск дать .t., что ключ в обеих индексах одинаковые? Тогда в чем разница индексных выражениях?
3. Если CDX, то 'set order to <ключ1>' или 'set order to <ключ2>'
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111122
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыл сказать, что индексы – IDX.
Ключи, конечно, разные – это я некорректно указал.

Ситуация следующая:

В таблице, коротко говоря, 2 поля. Индекс по первому и индекс по второму.
Делаю вставку строки при первом индексе. После этого по первому индексу первое поле ловится, а по второму второе – нет. Только после переиндексации.
Но, видимо, так просто эту проблему не решить.
Спасибо.
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111235
qwertyqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Ts
Переиндексация ВСЕХ индексов при добавлении записи - автомат
естественно, если соотв. файлы подключены


Тебе уже подсказали - Подключи оба индекса!!!
У тебя в коде не показано как подключяются/создаются индексы.

2 Samvel не важно IDX или CDX, если все индексные файлы (для IDX), индексы подключены они переиндексируются автоматом.
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111271
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k qwertyqwerty

Kогда я уточняю idx или cdx имею ввиду, что в первом случае idx файлы должны быть подключены, как ты говоришь, то-есть открыты вместе с dbf (или потом), а cdx открывается автомат. Видимо автор вопроса не различает значение термин "активен" и "подключен"
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111459
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индексы 1 и 2 созданы.
Запускается программа.

Use tabl
Set index to 1


Честно говоря, всегда работал только с одним индексом.
Правильно ли будет дописать SET INDEX TO 2? И не будет ли это ошибкой? Или как раз так и активизируются оба индекса?
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111496
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdSyzUse tabl
Set index to 1

Мдааа. Хелп - великая вещь...
VFP HELP:
USE [[DatabaseName.]Table | SQLViewName | ?]
[INDEX IndexFileList | ?
...
INDEX IndexFileList
Specifies a set of indexes to open with the table. If a table has a structural compound index file, the index file is automatically opened with the table.
IndexFileList can contain any combination of names of single-entry .IDX and compound .CDX index files. You don’t have to include the file name extensions for index files unless an .IDX and a .CDX index file in the index file list have the same name.
The first index file named in the index file list is the master controlling index file, which controls how records in the table are accessed and displayed. However, if the first index file is a .CDX compound index file, records in the table are displayed and accessed in physical record order.
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111499
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну когда мы приобретем привычку смотреть в HELP?

Код: plaintext
1.
2.
3.
4.
USE video INDEX title.idx, costs.cdx, rating.idx IN  1 
SET ORDER TO  1 
SET ORDER TO  3 

...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111505
qwertyqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А help почитать ...? :

"Индексы 1 и 2 созданы."

Ну и что что ты создал индексы ... .

"Запускается программа.

Use tabl
Set index to 1"

В этом примере ты вообще индексы не подключаешь/открываешь!!!
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111530
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey ChНу когда мы приобретем привычку смотреть в HELP?

(c) кто-то: Иногда решительный шаг вперед - результат хорошего пинка сзади
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111543
qwertyqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так:

Индексы 1 и 2 созданы.
Запускается программа.

Use tabl
Set index to 1.idx
Set index to 2.idx additive

Set odrer to 1 (номер по порядку, а не имя)
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111553
qwertyqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Ch

Ну когда мы приобретем привычку смотреть в HELP?



Интересно, откуда IdSyz вообще узнал о команде Set index :
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33111921
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwertyqwerty Интересно, откуда IdSyz вообще узнал о команде Set index :
Может кто в форуме подсказал?
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33112128
IdSyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, ладно... Принимаю. Буду почаще хелп изучать.
В любом случае всем спасибо.

Но у меня еще есть вопрос, так сказать, стратегический - вопрос безопасности индексов.

Подскажите, как выставить признак необходимости переиндексации баз данных? И в каких ситуациях индексы слетают, на каких операциях. Только на вводе новой информации в индексные поля или когда-нибудь еще?
Нужна ли так сказать, профилактическая индексация.
...
Рейтинг: 0 / 0
Два простых индекса - два мира, два детства
    #33112230
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IdSyz Нужна ли так сказать, профилактическая индексация.
Делаю каждую ночь - удаляю индексы и создаю их заново...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Два простых индекса - два мира, два детства
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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