|
|
|
Чем заменить квери в проекте?
|
|||
|---|---|---|---|
|
#18+
Access2000 + SQL server, все сервис-паки, mdb файл под 80 МБ. Предполагается переезд в adp, но это влечет за собой переписывание значительной части кода. Очевидно, я сперва перепишу часть тех конструкции, которые в adp жить не могут, на аналогичные, с adp совместимые. Вопрос в следующем. Есть форма, на ней в шапке параметры отбора, и подчиненная табличная форма, выборка в которой определяется параметрами. Источником такой формы является запрос, которому по нажатию кнопочки обновления засылается свойство: CurrentDb.QueryDefs("MyQuery").SQL = MystrSQL. MystrSQL - сгенеренный текст запроса в соответствии с настройками на главной форме. Это дает огромную свободу в построении выборок. Какой конструкцией можно заменить такое использование запросов? View на эту роль не годятся. Получается, единственно реальная возможность - присваивать источнику формы вызов процедуры, которая и будет уже строить SQL строку. Но когда параметров много, это плохо читается, и пересылать в процедуру параметры придется все, даже те, которые в конкретной выборке будут игнорироваться. Вызов процедуры с именованными параметрами в строке источника формы у меня не получается, выдает ошибку и вызывает зависание. Так каким образом грамотно построить выборку списка по заданным параметрам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 18:48:19 |
|
||
|
Чем заменить квери в проекте?
|
|||
|---|---|---|---|
|
#18+
Посмотри в форуме по MS SQL FAQ. Там этот вопрос, кажется, обсуждался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 19:23:18 |
|
||
|
Чем заменить квери в проекте?
|
|||
|---|---|---|---|
|
#18+
Строка типа "exec proc 'One', 1, , , , -1, 'aaa', , , 1" не устраивает ? SQL хорошо кушает вызов процедур с опущенными значениями параматров по умолчанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 20:23:25 |
|
||
|
Чем заменить квери в проекте?
|
|||
|---|---|---|---|
|
#18+
Из-под mdb у меня такое опускание параметров не прошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 21:02:26 |
|
||
|
Чем заменить квери в проекте?
|
|||
|---|---|---|---|
|
#18+
Да простит меня всезнающий All... мне кажется, чтобы опускание параметров проходило успешно, эти параметры надо с дефолтами объявлять, типа вот так: Код: plaintext 1. А потом ещё и обрабатывать соответственно, типа: Код: plaintext Но это про хранимые процедуры... А почему бы Вам, Ольга, не попробовать подставлять тот самый MystrSQL непосредственно в RecordSource самой формы? Хотя это академически неправильно (противоречит тезису о том что "Все запросы должны быть сохранёнными!!!"), зато это совершенно равнозначно тому чтобы собирать SQL строку в процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 21:39:18 |
|
||
|
Чем заменить квери в проекте?
|
|||
|---|---|---|---|
|
#18+
Ольга_ТТак каким образом грамотно построить выборку списка по заданным параметрам? Кстати, вот этот проект с успехом перекочевал в .adp, если интересно, можно куда-нибудь выложить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2005, 21:50:39 |
|
||
|
Чем заменить квери в проекте?
|
|||
|---|---|---|---|
|
#18+
Ольга_Т Источником такой формы является запрос, которому по нажатию кнопочки обновления засылается свойство: CurrentDb.QueryDefs("MyQuery").SQL = MystrSQL. MystrSQL - сгенеренный текст запроса в соответствии с настройками на главной форме. Это дает огромную свободу в построении выборок. Хи-хи... свобода есть осознанная необходимость. Код: plaintext 1. ------------------------- хотя лично мне этот способ не ндравится... Views forever! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2005, 10:12:30 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32855690&tid=1669425]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
| others: | 197ms |
| total: | 339ms |

| 0 / 0 |
