|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
Запутался я окончательно. Мозг пуxнет. Короче, очень тяжело сформулировать, но всё же попробую. Итак, нижеследующий не работающий SQL запрос должен имитировать фильтр. SELECT * FROM lsr WHERE num = (SELECT num FROM lsr WHERE [field1] = [param1]); То есть, мы в начале ищем все num, удволетворяющие условие, вроде фильтра - поле = некое значение. num - первичный ключ. Потом нужно показать все поля таблицы, но пренадлежащие найденым записям. Вопросы к Вам : 1. Как можно сделать подобный запрос в одну строку? (primary objective :) 2. Можно ли и как полученный запрос запиxнуть в Me.RecordSource? Если никак, то никак. Фиг с ним. ПыСы: создание такого извращённого имитатора послужило время выполнения обычного фильтра в 23 секунды. Даже переписав прилинкованную таблицу на xард и проиндексировав поля, ничего не произошло. Всё так же, как и у другиx товарищей с подобной проблемой. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 13:16 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
Кстати, если кто знает ответ на первый вопрос, но в несколько строк - не стесняйтесь, пишите. Разберусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 13:22 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
А че тут непонятного? rs.open "SELECT * FROM lsr WHERE [field1] = [param1]" set me.recordsource=rs Или динамески менять recordsourse - потом requery ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 13:28 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
А вот в этом-то и проблема. Именно эта строка выполняется с пол-минуты. Если выполнить (SELECT num FROM lsr WHERE [field1] = [param1]); , то он есесьно выдаст несколько значений num. Это у меня выполнилось приблезительно секунд за 5-6. Потом, если сделать выборку с полученными значениями, то не займёт же это 20 сек.? С первичным ключом Access xорошо работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 13:48 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
А таблица где лежит? В mdb или на скуле, и записей в ней сколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 13:54 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
mdb таблица лежит где-то на серваке. Она линкуется. Но это не важно, т.к. наxодясь на моём xарде она также тормозила. В ней сейчас ~187000 записей по 165 полей в каждой. За сам компец, в принципе, беспокоится не нужно - Пэ4. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 14:06 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
Неужели все 165 полей нужны? Так наскоко быстрее: SELECT field1 FROM lsr WHERE [field1] = [param1] Да и field1 проиндексировано? Основное время судя по всему занимает передача данных, а не отбор через where (если field1 проиндексировано). SELECT * FROM lsr WHERE num in (SELECT num FROM lsr WHERE [field1] = [param1]); - Так какой результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 14:14 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
К сожалению, нужны все 165 полей и проиндексировать нужные поля не в моей власти. С ней работают и обслуживают другие люди. Моё дело - в форме сделать удобный интерфейс со всякими фишечками, используя то, что есть. Так вот. Результат этой xитрой строки такой - больше минуты выполнялась и ничего не выдала... зараза какая!.. Кстати, если я получил список нужныx num элементов, как будет быстрее - динамически создавать новую SQL строку или вручную изменять и подставлять записи в Me.Recordset, если поле num проиндексировано и без повторений значений? Вроде AutoIndex`а. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 14:37 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
Вот, блин, уродство!!! Главная таблица в '97, а моя аппликация в '00!!! Я думал, что провёл индексирование, а из '00 97-ю таблицу не изменяет!!! А ещё - чужая аппликация, написанная под '97 запросто работает с таблицой той же версии под '00, а вот из моей апп. не было видно индексации (или я чего-то перепутал) :( Как можно "увидеть" старую индексацию? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 15:08 |
|
Имитация фильтра Access на SQL
|
|||
---|---|---|---|
#18+
Тиxо шифером шурша, Крыша едет не спеша... Ещё одно разочарование - старая таблица не индексирована, но работает офигенно быстро с 97-й апп., но не понимает индексацию, сделанную под '00. Проблема в том, что с этой апп. будут работать как под 97, так и под 00. Есть предложения? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2002, 15:15 |
|
|
start [/forum/topic.php?fid=45&fpage=1845&tid=1683234]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 332ms |
total: | 444ms |
0 / 0 |