Содержание
Использование параметров для ввода данных при выполнении запроса
Чтобы настроить в запросе к базе данных рабочего стола Access ввод условий при его выполнении, создайте запрос с параметрами. Это даст возможность использовать запрос повторно, не открывая его в Конструктор для изменения условий.
Примечание: Эта статья не относится к веб-приложениям Access.
Терминология
Прежде чем перейти к описанной ниже пошаговой процедуре, полезно ознакомиться с несколькими терминами.
-
Параметр. Параметр — это часть сведений, предоставляемых запросу при его выполнении. Параметры можно использовать отдельно или в составе длинных выражений для формирования условия запроса. Параметры можно добавить в запрос любого из следующих типов:
org/ListItem»>
Условия.
Условия — это «фильтры», добавляемые в запрос для указания элементов, которые он должен возвратить.
Дополнительные сведения об указанных выше типах запросов см. в статье Знакомство с запросами.
Создание запроса с параметрами
Создание параметра аналогично добавлению обычного условия в запрос:
-
Создайте запрос на выборку и откройте его в конструкторе.
-
В строке «Условия» поля, к которым вы хотите применить параметр, введите текст, который вы хотите отобразить в поле параметра, в квадратных скобках. Например: [Введите дату начала:]
-
Повторите шаг 2 для каждого поля, в которое необходимо добавить параметры.
При запуске запроса текст отображается без квадратных скобок.
Введите нужное значение и нажмите кнопку ОК.
В условии можно использовать несколько параметров. Например, выражение Between [Введите дату начала:] And [Введите дату окончания:] при выполнении запроса создаст два поля.
Указание типов данных для параметра
Можно настроить параметр так, чтобы он принимал только определенный тип данных. Это особенно важно для числовых и денежных данных, а также данных даты и времени, так как в таком случае пользователи получат более содержательное сообщение об ошибке при вводе неправильного типа данных, например при вводе текста вместо денежного значения.
Примечание: Если параметр настроен на прием текстовых данных, любое введенное значение будет распознаваться как текст, а сообщение об ошибке не будет выводиться.
Чтобы задать тип данных для параметра в запросе, выполните указанные ниже действия.
-
Когда запрос открыт в конструкторе, на вкладке Конструктор в группе Показать или скрыть нажмите кнопку Параметры.
-
В диалоговом окне Параметры запроса в столбце Параметр введите текст запроса на ввод каждого из параметров, для которых требуется указать тип данных. Проверьте, соответствуют ли параметры запросам на ввод, указанным в строке Условия в бланке запроса.
-
В столбце Тип данных выберите тип данных для каждого параметра.
Добавление параметра в запрос на объединение
Так как запрос на объединение нельзя просмотреть в бланке запроса, действия с ним будут немного отличаться.
-
Откройте запрос на объединение в режиме SQL.
-
Добавьте к нему предложение WHERE, содержащее поля, в которые нужно добавить параметры.
Если предложение WHERE уже существует, проверьте, включены ли в него все поля, в которые нужно добавить параметры. Если нет, добавьте недостающие поля.
-
Введите запрос параметра в предложение WHERE, например WHERE [StartDate] = [Введите дату начала:].
Имейте в виду, что во все разделы запроса необходимо добавить одинаковые фильтры. На рисунке выше запрос содержит два раздела (разделенные ключевым словом UNION), поэтому параметр нужно добавить дважды. Но при выполнении запроса ввод данных запрашивается только один раз (предполагается, что во всех разделах указан одинаковый запрос).
Дополнительные сведения о запросах на объединение см. в статье Использование запроса на объединение для просмотра объединенных результатов нескольких запросов.
Объединение параметров с помощью подстановочных знаков для большей гибкости
Как и в случае обычных условий, вы можете объединить параметры с помощью ключевого слова Like и подстановочных знаков для поиска соответствий в более широком диапазоне элементов. Предположим, что нужно запросить страну или регион и при этом сопоставить их со значениями, которые содержат строку параметра. Для этого выполните указанные ниже действия.
-
Создайте запрос на выборку и откройте его в конструкторе.
-
В строке Условия поля, в которое нужно добавить параметр, введите Like «*»&[, текст сообщения, а затем ]&»*».
При запуске запроса с параметрами запрос появляется в диалоговом окне без квадратных скобок и без ключевого слова Like или
поддиаметров:
После ввода параметра запрос возвратит значения, содержащие строку параметра. Например, строка параметра us возвратит элементы, в которых поле параметра имеет значение «Австралия» или «Австрия».
Дополнительные сведения о подстановочных знаках см. в статье Использование подстановочных знаков в качестве условий.
Возврат элементов, не соответствующих параметру
Вместо возврата элементов, соответствующих параметру, можно создать запрос, возвращающий элементы, которые ему не соответствуют. Например, может потребоваться запросить год и возвратить элементы со значением года, большим чем указанное. Для этого введите оператор сравнения слева от запроса параметра в квадратных скобках, например >[Введите год:].
Видео: использование параметров в запросах
Использовать в запросе параметр не сложнее, чем создать запрос на основе условий. Запрос можно настроить таким образом, чтобы предлагалось ввести определенное значение, такое как артикул товара, или несколько значений, например две даты. Для каждого параметра запрос выводит отдельное диалоговое окно, в котором предлагается ввести значение.
В этом видео подробнее рассказывается о создании параметров в запросах.
Консоль запросов для управляемого приложения 1С 8.2 (Версия 6)
Обработка консольных запросов для управляемого приложения 1с 8.2 имеет интерфейс и функционал, аналогичный обработки для приложения 1С 8.1. Также существует возможность получать результаты временных таблиц и
пакетных запросов. Необходимое содержимое результата выполнения устанавливается в поле Получать результаты из 3-х возможных вариантов: Только временных таблиц, Только запросов, Запросов и временных таблиц.
Запросы могут выполняться как на тонком, так и на толстом клиенте, т.к. для их исполнения производится обращение к серверу.
Файл запросов
Файл запросов формата .sel для Консоли запросов 1С 8.2 сходен с соответствующим файлом для Консоли запросов 8. 1; могут быть открыты существующие файлы запросов, созданные в 1С 8.1.
Кроме того, файлы, разработанные в Консоли управляемого режима, могут быть открыты в Консоли 8.1.
Конструктор запроса
Конструктор запроса запускается с помощью контекстного меню поля текста запроса. Он не доступен в тонком клиенте (пункт меню запуска Конструктора неактивно), но доступен в толстом клиенте.
Цветовое оформление
В управляемом приложении не поддерживается подсветка ключевых слов запроса — весь текст запроса черного цвета.
Параметры запроса
Параметры запроса устанавливаются на вкладке Параметры запроса в верхней левой области формы Консоли. При нажатии кнопки Заполнить запускается заполнение списка параметров запроса автоматически.
Можно устанавливать параметр типа Тип. Для чего необходимо установить тип параметра ОписаниеТипов и указать нужный тип. При задании составного типа, будет использовано только первое значение из списка типов.
Тип МоментВремени и Граница
Параметры этих типов могут быть настроены на внутренней вкладке Особые закладки Параметры запроса. Ввести их можно вручную с помощью кнопки Добавить,
а также перевести параметры в категорию «особые» с закладки Общие, щелкнув по флажку в колонке Особый тип — при этом будет выдано предупреждение,
при подтверждении которого параметр переведется на закладку Особые. (В режиме автозаполнения списка параметров все параметры будут переведены на закладку Общие).
Для настройки параметров данных типов будет открыта форма Редактирование параметра особого типа, содержащая поля редактирования имени и типа параметра ( доступны только типы МоментВремени и Граница;
в будушем планируется добавить тип ТаблицаЗначений). После выбора типа параметра из списка Тип параметра в форме возникают поля для установки его значения. Для установки значения параметра МоментВремени необходимо указать
документ, а для параметра Граница — ввести тип и значение границы (Включая или Исключая). Для значения границы также можно указать момент времени или дату (выбирается в радиокнонке Способ задания).
Завершить настройку параметров необходимо нажатием кнопки Завершить.
Поле результата запроса
Результат запроса отображается в поле табличного документа. Так как выровнять ширину таблицы результата автоматически достаточно сложно, используется визуальное выравнивание вручную с
помощью слайдера Ширина колонок: при передвижении его ползунка по горизонтали изменяется ширина всех колонок таблицы одновременно, что позволяет выровнять правую
границу таблицы с правым краем формы. Значение ширины колонок каждого запроса записывается в файл запросов (.sel).
Примечание. Если последнее редактирование файла запросов производилось в Консоли запросов 1С 8.1, то при его открытии в Консоли управляемого приложения ширина колонок результата
будет установлена в значение по умолчанию, т.к. в Консоли запросов 8.1 значение ширины колонок не сохраняется.
Вложение таблиц
Вложенные таблицы (поле результата запроса с типом РезультатЗапроса) подсвечиваются надписью <РЕЗУЛЬТАТ ЗАПРОСА> зеленого цвета в ячейке поля результата.
Вложенная таблица отображается в виде табличного документа и запускается двойным щелчком.
Пакетные запросы
Пронумерованный список результатов пакетных запросов отображается в поле результата списком один под другим. Ширина колонок и способ выгрузки одни и те же для всех запросов пакета.
Временные таблицы
Если установлен вывод временных таблиц, то при исполнении запроса в тексте производится поиск имен временных таблиц, и для каждой последовательно осуществляется выборка и выводится ее результат.
Если пакетный запрос содержит предложение УНИЧТОЖИТЬ, то для удаленных таблиц будет выведено сообщение об ошибке.
Выполнение выделенного текста
При выделении фрагмента текста в поле запроса и выборе пункта меню Выполнить выделенный фрагмент будет выполнен как самостоятельный запрос. Это дает возможность исполнять
отдельные пакетные и вложенные запросы. При этом необходимо следить, чтобы выделенный фрагмент текст представлял собой синтаксически корректный запрос.
Переподчинение в дереве запросов
Перенести запрос в другую ветвь дерева можно перетаскиванием его мышью в новую родительскую ветвь. При зацикливании подчинения будет выведено
предупреждающее сообщение и переподчинение не осуществляется.
Вывод для ссылок значений ГУИД вместо строковых представлений
Вывод значения результата полей ссылочного типа требует значительного времени для получения представлений ссылок. Для того чтобы сократить время вывода,
необходимо поставить флажок Для ссылок выводить ГУИД — в этом случае вместо строковых представлений ссылок будут выводиться их глобальные уникальные идентификаторы — ГУИД. В процессе получения значения ссылки ГУИД,
в отличие от получения строкового представления, не происходит обращения к информационной базе.
Java — HttpServletRequest — SetParameter
спросил
Изменено
7 лет назад
Просмотрено
37 тысяч раз
Я знаю, что могу использовать HttpServletRequest. getParameter()
для получения значений параметров URL.
Есть ли эквивалентный метод, с помощью которого я могу установить/заменить значение?
- Java
- кодирование
- сервлеты
Нет, не существует.
Вы можете изменять только атрибуты, но не параметры.
Единственный способ добиться чего-то подобного — обернуть запрос (с классом, который возвращает что-то еще для getParameter).
Связанный любопытство: в некоторых контейнерах сервлетов есть ошибка, которая позволяет вам сделать request.getParameterValues(name)[0] = "newValue"
, но это может привести только к несоответствиям.
2
Вы можете сделать карту параметров изменяемой картой, заменив HttpServletRequest
пользовательской реализацией HttpServletRequestWrapper
, которая заменяет карту параметров внутри фильтра
, который был помещен в начале цепочки.
Однако это похоже на обходной путь. В одном из комментариев вы указали, что хотите закодировать параметры (на самом деле: decode их, потому что они уже закодированы ). Вы ищете решение не в том направлении. Для параметров запроса GET
кодировку необходимо установить в самом контейнере сервлетов (например, в случае Tomcat просто установите атрибут URIEncoding
HTTP-коннектора). Для POST
вам необходимо установить его с помощью ServletRequest#setCharacterEncoding()
. Также см. подробные решения в этой статье (прочитайте всю статью, чтобы понять полную картину).
Не думаю, что есть. Но вы можете использовать метод setAttribute() аналогичным образом; вам просто нужно использовать getAttribute() — не getParameter() — чтобы вернуть значение позже.
Нет. Но зачем вам это? Могут быть другие способы выполнить то, что вам нужно сделать.
5
Параметры запроса передаются сервлету или JSP от клиента через HTTP. Они не устанавливаются кодом на стороне сервера, поэтому нет необходимости в каких-либо методах установки (setParameter()).
Кроме того, это добавит безопасности, что никто не сможет изменить параметры запроса.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
API параметров запроса | Справочное руководство Apache Solr 6.
6
API параметров запроса позволяет создавать наборы параметров, также известные как наборы параметров, которые могут переопределять или заменять параметры, определенные в solrconfig.xml
.
Наборы параметров, определенные с помощью этого API, можно использовать в запросах к Solr или ссылаться непосредственно в solrconfig.xml
определениях обработчиков запросов.
Это действительно еще одна конечная точка Config API, а не отдельный API, и имеет отдельные команды. Он не заменяет и не изменяет какие-либо разделы solrconfig.xml
, а вместо этого предоставляет другой подход к обработке параметров, используемых в запросах. Он ведет себя так же, как Config API, сохраняя параметры в другом файле, который будет использоваться во время выполнения. В этом случае параметры сохраняются в файле с именем params.json
. Этот файл хранится в ZooKeeper или в каталоге conf
автономного экземпляра Solr.
Параметры, сохраненные в params. json
, используются во время запроса для переопределения параметров, определенных в solrconfig.xml
, в некоторых случаях, как описано ниже.
Когда вы можете захотеть использовать эту функцию?
Во избежание частого редактирования файла
solrconfig.xml
для обновления параметров запроса, которые часто меняются.Для повторного использования параметров в различных обработчиках запросов.
Для смешивания и сопоставления наборов параметров во время запроса.
Чтобы избежать перезагрузки вашей коллекции при небольших изменениях параметров.
Конечная точка параметров запроса
Все запросы отправляются в конечную точку /config/params
Config API.
Настройка параметров запроса
Запрос на установку, отмену или обновление параметров запроса отправляется в виде набора карт с именами. Эти объекты можно напрямую использовать в запросе или определении обработчика запросов.
Доступные команды:
set
: Создать или перезаписать карту набора параметров.unset
: удалить карту набора параметров.обновление
: обновить карту набора параметров. Это эквивалентно map.putAll(newMap) . Обе карты объединяются, и если новая карта имеет те же ключи, что и старая, они перезаписываются.
При необходимости эти команды можно объединить в один запрос.
Каждая карта должна содержать имя, чтобы на нее можно было ссылаться позже либо в прямом запросе к Solr, либо в определении обработчика запросов.
В следующем примере мы устанавливаем 2 набора параметров с именами «myFacets» и «myQueries».
curl http://localhost:8983/solr/techproducts/config/params -H 'Тип содержимого: приложение/json' -d '{ "набор":{ "мои грани":{ «грань»: «истина», "фасет.лимит":5}}, "набор":{ "мои запросы":{ "defType":"edismax", «строки»: «5», "дф":"text_all"}} }'
В приведенном выше примере все параметры эквивалентны «значениям по умолчанию» в solrconfig. xml
. Можно добавить инварианты и добавления следующим образом:
curl http://localhost:8983/solr/techproducts/config/params -H 'Content-type:application/json' -d '{ "набор":{ "my_handler_params":{ "face.limit":5, "_инварианты_": { "грань": правда, "вес":"json" }, "_appends_":{"facet.field":["field1","field2"] } }} }'
Использование параметров запроса с обработчиками запросов
После создания набора параметров my_handler_params
в приведенном выше разделе можно определить обработчик запроса следующим образом:
9000 2 Это будет эквивалентно стандартному определению обработчика запросов, такому как это:
5 json true запрос обработчик> field"> поле1 поле2
Неявные обработчики запросов
Solr поставляется со многими готовыми обработчиками запросов, которые можно настроить только через API параметров запроса, поскольку их конфигурация отсутствует в solrconfig.xml
. См. Implicit RequestHandlers для набора параметров, который следует использовать при настройке неявного обработчика запросов.
Просмотр расширенных наборов параметров и эффективных параметров с помощью RequestHandlers
Чтобы просмотреть расширенный набор параметров и результирующие эффективные параметры для RequestHandler, определенного с помощью useParams
, используйте параметр запроса expandParams
. Например. для обработчика запросов /export
:
curl http://localhost:8983/solr/techproducts/config/requestHandler?componentName=/export&expandParams=true
Просмотр параметров запроса
Чтобы просмотреть созданные наборы параметров, вы можете использовать конечную точку /config/params
для чтения содержимого params. json
или использовать имя в запросе:
curl http://localhost:8983/solr/techproducts/config/параметры #Или используйте имя набора параметров curl http://localhost:8983/solr/techproducts/config/params/myQueries
Параметр
useParams
При выполнении запроса параметр useParams
применяет параметры запроса, отправленные в запрос. Это преобразуется во время запроса в фактические параметры.
Например (используя имена, которые мы установили в предыдущих примерах, замените их своим именем):
http://localhost/solr/techproducts/select?useParams=myQueries
В одном запросе можно передать более одного набора параметров. Например:
http://localhost/solr/techproducts/select?useParams=myFacets,myQueries
В приведенном выше примере набор параметров «myQueries» применяется поверх «myFacets». Таким образом, значения в «myQueries» имеют приоритет над значениями в «myFacets». Кроме того, любые значения, переданные в запросе, имеют приоритет над параметрами useParams
. Это действует как «значения по умолчанию», указанные в
определение в solrconfig.xml
.
Наборы параметров можно использовать непосредственно в определении обработчика запросов следующим образом. Обратите внимание, что указанный useParams
применяется всегда, даже если запрос содержит useParams
.
<арр имя="компоненты"> правда ложь условия запрос обработчик>
Подводя итог, параметры применяются в следующем порядке:
параметры определены в
<инварианты>
вsolrconfig.xml
.параметры применяются в
инвариантах
вparams.