| 
 | 
| 
 
Имитация фильтра 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&msg=32054057&tid=1683234]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    61ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    44ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 13ms | 
| total: | 163ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...