powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Чем заменить квери в проекте?
7 сообщений из 7, страница 1 из 1
Чем заменить квери в проекте?
    #32855672
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access2000 + SQL server, все сервис-паки, mdb файл под 80 МБ.
Предполагается переезд в adp, но это влечет за собой переписывание значительной части кода. Очевидно, я сперва перепишу часть тех конструкции, которые в adp жить не могут, на аналогичные, с adp совместимые.
Вопрос в следующем. Есть форма, на ней в шапке параметры отбора, и подчиненная табличная форма, выборка в которой определяется параметрами.
Источником такой формы является запрос, которому по нажатию кнопочки обновления засылается свойство: CurrentDb.QueryDefs("MyQuery").SQL = MystrSQL. MystrSQL - сгенеренный текст запроса в соответствии с настройками на главной форме. Это дает огромную свободу в построении выборок.
Какой конструкцией можно заменить такое использование запросов? View на эту роль не годятся. Получается, единственно реальная возможность - присваивать источнику формы вызов процедуры, которая и будет уже строить SQL строку. Но когда параметров много, это плохо читается, и пересылать в процедуру параметры придется все, даже те, которые в конкретной выборке будут игнорироваться. Вызов процедуры с именованными параметрами в строке источника формы у меня не получается, выдает ошибку и вызывает зависание.
Так каким образом грамотно построить выборку списка по заданным параметрам?
...
Рейтинг: 0 / 0
Чем заменить квери в проекте?
    #32855690
Fat Lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри в форуме по MS SQL FAQ. Там этот вопрос, кажется, обсуждался.
...
Рейтинг: 0 / 0
Чем заменить квери в проекте?
    #32855718
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка типа "exec proc 'One', 1, , , , -1, 'aaa', , , 1" не устраивает ?

SQL хорошо кушает вызов процедур с опущенными значениями параматров по умолчанию.
...
Рейтинг: 0 / 0
Чем заменить квери в проекте?
    #32855732
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из-под mdb у меня такое опускание параметров не прошло.
...
Рейтинг: 0 / 0
Чем заменить квери в проекте?
    #32855745
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да простит меня всезнающий All...

мне кажется, чтобы опускание параметров проходило успешно, эти параметры надо с дефолтами объявлять, типа вот так:
Код: plaintext
1.
CREATE PROCEDURE usp_MyProcedure (@LastName varchar( 20 )=null)
AS

А потом ещё и обрабатывать соответственно, типа:
Код: plaintext
LastName Like '%'+IsNull(@LastName ,'')+'%'

Но это про хранимые процедуры...

А почему бы Вам, Ольга, не попробовать подставлять тот самый MystrSQL непосредственно в RecordSource самой формы? Хотя это академически неправильно (противоречит тезису о том что "Все запросы должны быть сохранёнными!!!"), зато это совершенно равнозначно тому чтобы собирать SQL строку в процедуре.
...
Рейтинг: 0 / 0
Чем заменить квери в проекте?
    #32855752
lobodava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_ТТак каким образом грамотно построить выборку списка по заданным параметрам?
Кстати, вот этот проект с успехом перекочевал в .adp,
если интересно, можно куда-нибудь выложить.
...
Рейтинг: 0 / 0
Чем заменить квери в проекте?
    #32855908
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ольга_Т
Источником такой формы является запрос, которому по нажатию кнопочки обновления засылается свойство: CurrentDb.QueryDefs("MyQuery").SQL = MystrSQL. MystrSQL - сгенеренный текст запроса в соответствии с настройками на главной форме. Это дает огромную свободу в построении выборок.


Хи-хи... свобода есть осознанная необходимость.

Код: plaintext
1.
DoCmd.OpenForm "crasy form"
Forms("crasy form").RecordSource=MystrSQL
ПРИМЕЧАНИЕ: "crasy form" имеет исходно ПУСТОЙ RecordSource.
-------------------------
хотя лично мне этот способ не ндравится...
Views forever!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Чем заменить квери в проекте?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]