|
|
|
in (15,36897,56489) vs in (Select ...) ?
|
|||
|---|---|---|---|
|
#18+
Для одного fXID : 1. select * from t_Y where fYID in (15,36897,56489) 2. select * from t_Y where fYID in (Select fYID from t_X where fXID = forms!foX!fXID) Первый запрос выполняется быстрее, чем второй. Но если я подставлю строку в RecordSource формы, то при изменении fXID для обновления формы в первом случае нужно изменять form.RecordSource, а во втором всего лишь вызвать form.Requery. Я написал функцию funYID_list(lngXID as long), которая БЫСТРО возвращает список значений для поля fYID, разделенный запятыми. Пытаюсь её подставить в SQL: select * from t_Y where fYID in (funYID_list(forms!foX!fXID)) НО... То ли лыжи не едут ... :( Подскажите, можно ли ВООБЩЕ в запрос подставить функцию или поле с перечислением. Или как еще можно выкрутиться? ЗЫ:Изменять каждый раз form.RecordSource очень не хочется . А97 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 10:46:24 |
|
||
|
in (15,36897,56489) vs in (Select ...) ?
|
|||
|---|---|---|---|
|
#18+
"select * from t_Y where fYID in (funYID_list(" & forms!foX!fXID & "))" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 10:52:10 |
|
||
|
in (15,36897,56489) vs in (Select ...) ?
|
|||
|---|---|---|---|
|
#18+
Не. Не работает: forms!foX!fXID =13 "funYID_list(" & forms!foX!fXID & ")"=funYID_list(13)="13;27644;58132" запрос In (13;27644;58132) возвращает 9 записей запрос in(funYID_list(" & forms!foX!fXID & "))" возвращает 0 записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 11:23:18 |
|
||
|
in (15,36897,56489) vs in (Select ...) ?
|
|||
|---|---|---|---|
|
#18+
автор... в первом случае нужно изменять form.RecordSource, а во втором всего лишь вызвать form.Requery ... И там и там одна строка (при условии, что у вас уже функция отписана). Чем вам не нравиться подменять RecordSource - я всегда так деляю! Код: plaintext Разделять надо запятыми , а не ; (вот!!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 11:29:22 |
|
||
|
in (15,36897,56489) vs in (Select ...) ?
|
|||
|---|---|---|---|
|
#18+
1. Тем, что .Requery выполняется быстрее - не тратится время на разбор SQL инструкции (парсинг, оптимизацию всяческую и т.д. ...) - эт мы проходили :) 2. при вызове me.recordsource ="..." сбрасываются свойства .filter (.filteron) и .orderby (.orderbyon). Для того, чтоб их снова установить, тратим опять же время (см.п.1) Насчет "Разделять надо запятыми, а не ; (вот!!!)" - Да я не спорю. Просто у меня в настройках системы стоит разделитель ";", а строку "13;..." я скопировал не из кода, а из бланка в конструкторе запросов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 12:02:11 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1583&tid=1672728]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 316ms |

| 0 / 0 |
