Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.46 MB
Время: 0.037 c
9-1091793832
Денис
2004-08-06 16:03
2004.12.12
SNAKE


4-1099037024
zsv
2004-10-29 12:03
2004.12.12
Двоичный параметр


3-1100317736
Under
2004-11-13 06:48
2004.12.12
INFORMATION_SCHEMA в Access


14-1100741392
ИМХО
2004-11-18 04:29
2004.12.12
Приснился сон...


6-1091808188
2тэ10м
2004-08-06 20:03
2004.12.12
Трафик





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский