Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизИспользование индексов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c