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

Вниз

Как использовать индексы Foxpro при подключении чере ODBC ?   Найти похожие ветки 

 
Vorobyev Sergey   (2003-08-06 15:40) [0]

Привет всем!

Есть несколько таблиц *.dbf, созданных в Foxpro..
Извлекаю данные из таблиц, используя TQuery через Microsoft Visual Foxpro ODBC драйвер.. (BDE не подходит)
В таблицах много записей (до 100000 записей в среднем) и запрос выполняется ОЧЕНЬ долго (~2 мин)

Предполагаю, что если бы использовались индексы при выполнении запроса, то он выполнялся бы намного быстрее..

Вот собственно и
ВОПРОС: Возможно ли где-нибудь указать драйверу, чтобы он использовал индексы таблиц (*.cdx) при выполнении запроса?
Или все-таки драйвер автоматически использует индексы, а запрос даже в этом случае выполняется долго? (хотя сравнивал, разницы не почувствовал)
Кто знает?


 
sniknik ©   (2003-08-06 15:45) [1]

использует автоматически но и от запроса зависит (условия), на вычисляемых индекс не работает.


 
Vorobyev Sergey   (2003-08-07 07:21) [2]


> на вычисляемых индекс не работает.

А почему ?

Дело в том, что Visual Foxpro ODBC драйвер поддерживает функции в SQL запросе, причем не просто функции, а те, которые используются в досовском фокспро, например ( alltrim(), ctod(), date() и т.п.)
Неужели, включив использование этих функций в запросе, разработчики драйвера не включили поддержку индексов по вычисляемым выражениям..

К примеру, есть индекс по alltrim(fam)+alltrim(name)+alltrim(otch)..
>sniknik
Значит драйвер не будет использовать этот индекс в SQL запросе?


 
sniknik ©   (2003-08-07 08:06) [3]

не будет если в условие поставить к примеру name = "xxxx" (даже вероятно и fam = "xxxx"), для составного индекса, так понимаю, оно в таком случае и будет вычисляемым.

хотя по началу строки в индексе некоторые драйвера могут работать (поэтому не уверен во втором приведенном условии).



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
4-1719
andrey113
2003-06-30 21:58
2003.09.01
Как мне изменить содержимое StatusBar-а другой проги?


1-1406
^^^Dragon^^^
2003-08-15 23:23
2003.09.01
Ошибка


1-1432
opoloXAI
2003-08-18 10:10
2003.09.01
RichEdit.Lines.Count > 460


1-1441
ArtAlex
2003-08-18 20:56
2003.09.01
Как можно отследить процесс?


4-1717
Иксик
2003-07-01 12:57
2003.09.01
BitBlt