|
|
|
Запросы: не знаю,как в спецификации, но на практике...
|
|||
|---|---|---|---|
|
#18+
Интересный факт: Например, у нас есть запрос. Обычный. на тупую выборку. Все работает замечательно, но есть оно "но..." Если фильтровать по where , то происходит следующее: сначала выбираются все записи, потом фильтруется полученный набор записей по первому условию, затем по второму и так до n-го. Какая может быть в этом подстава? Например, если одно поле в запросе высчитывается с помощью своей функции, использующий Recordset и вносящей в оный изменения. Догадайтесь, что будет на выходе? Впервые столкнулся в Access 2.0. Думал, что баг. Ан нет, в Access XP тоже самое. Если факт известный и/или никому не мешающий, то "не пинайте, люди добрые". Но подстава, однако... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2003, 22:02 |
|
||
|
Запросы: не знаю,как в спецификации, но на практике...
|
|||
|---|---|---|---|
|
#18+
попробуй использовать вместо функций вложенные селекты, конечно не все возможно, но многое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2003, 11:08 |
|
||
|
Запросы: не знаю,как в спецификации, но на практике...
|
|||
|---|---|---|---|
|
#18+
сначала выбираются все записи, потом фильтруется полученный набор записей по первому условию, затем по второму и так до n-го Грамотное индексирование спасет отца русской демократии Хотя функции - они и в африке функции. Но от "выбираются все записи" надо избавляться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2003, 11:23 |
|
||
|
Запросы: не знаю,как в спецификации, но на практике...
|
|||
|---|---|---|---|
|
#18+
"Что происходит, если в запросе используется функция, вносящая в базовый набор записей свои изменения"??? - а вот тут, батенька, желательно как-нить без этого-то. Или жестко навязать запросу порядок выборки - тем же индексом. Либо (что предпочтительнее) "мухи- отдельно (выборка), котлеты - отдельно (изменение записей)". Тут уж вопрос в том, как руки заточены, а не в "подставах". Если, скажем, запрос создан для того, чтобы менять записи в результатах - функцию из него выбросить и подействовать ею на результат выборки. Или преобразовать в запрос на обновление. Или еще как. В противном случае придется разбираться с порядком выполнения инструкций WHERE и описанной функции. Сдается мне, что если вычисляемое поле с функцией в предложение WHERE не входит, то WHERE выполнится раньше (а результат действия функции может изменить поля, входящие в WHERE таким образом, что они перестанут ей соответствовать). А вот если WHERE содержит и вычисляемое поле с данной функцией - то там уже поинтереснее завязки начинаются. Вы еще и в групповуху ее пустите :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2003, 12:01 |
|
||
|
Запросы: не знаю,как в спецификации, но на практике...
|
|||
|---|---|---|---|
|
#18+
Звиняйте, токо что добрался до инета. Итак, что происходит: Сначала функция отрабатывает на первом where, затем на 2-м и так до... победного конца... з.ы. А то, что так делать низя, я уж понял... з.з.ы. Это не проблема, а просто констатация факта. Вдруг кому пригодиться. Мух с котлетами мешать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 16:13 |
|
||
|
Запросы: не знаю,как в спецификации, но на практике...
|
|||
|---|---|---|---|
|
#18+
2 Л. П. Но от "выбираются все записи" надо избавляться. Дык как от него избавишься то, ежели он так прописан в Аксесе??? Или я ошибаюсь? План выполнения в Accesse вроде как нельзя посмотреть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2003, 16:15 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32254965&tid=1679605]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 312ms |

| 0 / 0 |
