Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Два простых индекса - два мира, два детства / 19 сообщений из 19, страница 1 из 1
10.06.2005, 09:08:47
    #33110906
IdSyz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два простых индекса - два мира, два детства
Ребята! Всем привет!

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

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

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

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

естественно, если соотв. файлы подключены
...
Рейтинг: 0 / 0
10.06.2005, 09:25:03
    #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
10.06.2005, 09:35:16
    #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
10.06.2005, 10:22:51
    #33111100
Samvel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два простых индекса - два мира, два детства
1. Если индексные файлы типа IDX, то переиндексация обязатльна, если это CDX- то все автомат.
2. А почему должен второй поиск дать .t., что ключ в обеих индексах одинаковые? Тогда в чем разница индексных выражениях?
3. Если CDX, то 'set order to <ключ1>' или 'set order to <ключ2>'
...
Рейтинг: 0 / 0
10.06.2005, 10:28:08
    #33111122
IdSyz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два простых индекса - два мира, два детства
Да, забыл сказать, что индексы – IDX.
Ключи, конечно, разные – это я некорректно указал.

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

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


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

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

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

Use tabl
Set index to 1


Честно говоря, всегда работал только с одним индексом.
Правильно ли будет дописать SET INDEX TO 2? И не будет ли это ошибкой? Или как раз так и активизируются оба индекса?
...
Рейтинг: 0 / 0
10.06.2005, 12:04:22
    #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
10.06.2005, 12:05:25
    #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
10.06.2005, 12:06:11
    #33111505
qwertyqwerty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Два простых индекса - два мира, два детства
А help почитать ...? :

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

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

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

Use tabl
Set index to 1"

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

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

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

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

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

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



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

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

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


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