Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Использование индексов   Найти похожие ветки 

 
Dionnis   (2004-11-15 18:12) [0]

Здравствуйте уважаемые мастера! Я столкнулся с такой проблемой:
Использую ADO и провайдер Microsoft Visual FoxPro OLE DB Provider для работы с dbf - файлами. Мне нужно из файла с именем
personal.dbf, который имеет индекс ipersonal.cdx, выбрать определённую запись, для этого использую запрос в CommandText объекта класса TADODataSet: "SELECT * FROM personal.dbf WHERE NOM = 123". В таблице около 100 тыс. записей. и запрос выполняется очень медленно (около минуты). Так как имя dbf таблицы (personal) отличается от имени индекса (ipersonal), я так понимаю что он и не используется. Как можно заставить использовать этот индекс? Может быть команда есть какаято, или ссылку кто знает полезную?
                                               Заранее спасибо!


 
sniknik ©   (2004-11-15 20:30) [1]

сомневаюсь что чтото получится... даже в фоксе sql ные команды не работают с таким индексом (раньше так было во всяком случае)
надо открывать таблицу в фоксе с использованием такого индекса
USE Table INDEX iIndex
чтото в таком роде, т.е. это все команды фокса, а с sql даже втроенным не работает, а у движка odbc шного только sql есть без этих фоксовых команд.

возможно если базу использовать, *.dbc, вот в ней соответствия можно прописать... (возможно! только, точно не знаю)

а зачем сложности, нельзя переименовать? хотя бы на время работы.


 
Dionnis   (2004-11-16 11:54) [2]

При использовании команды USE Table INDEX iIndex ещё дольше поиск идёт! 8-(


 
sniknik ©   (2004-11-16 12:28) [3]

в фоксе? не верю,
сделай
USE Table INDEX iIndex
BROWSE FOR NOM = 123
должно быть быстро. а то что ты после фоксовой команды выполнил команду sql ничего не значит. (кроме паралельного открытия таблицы в области фокса, ничего не добился)


 
Dionnis   (2004-11-16 14:14) [4]

Не, не в Фоксе, я из Делфей используя провайдер FoxPro OLE DB Provider работаю с dbf таблицами. Этот провайдер "понимает" некоторые команды Фокса. Вот я ни как не могу подключить индекс,
который по умоляанию не используется из-за разницы имён. С Фоксом я никогда не работал, поэтому не знаю какая команда подключает индекс. Щас вот роюсь в книжке по Фоксу ...


 
sniknik ©   (2004-11-16 14:27) [5]

использовать индекс с открытой в области таблицей уже сказал, если таблица уже открыта то можно подключить  
SET INDEX OF iIndex.cdx (если не путаю, подзабыл уже)

но (!!!)

повторяю, это тебе ничего не даст, т.к. это не для тех команд которые ты можеш использовать "используя провайдер FoxPro OLE DB Provider" с командой SELECT ... FROM ...
это ничего не даст даже в фоксе с этой командой, чего тогда от других ждать?



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
14-1101231153
Kurtevich
2004-11-23 20:32
2004.12.12
Жалобы на Дельфи :(


1-1101473721
SOLDEN1
2004-11-26 15:55
2004.12.12
Динамическое создания нескольких копий формы


14-1101046114
Piter
2004-11-21 17:08
2004.12.12
Чем отличается ShowModal и Show?


1-1101806334
Алик
2004-11-30 12:18
2004.12.12
Popup menu


1-1101887751
RDen
2004-12-01 10:55
2004.12.12
Опять про второй экземпляр приложения...