Параметры
YouTube |
Видеоурок по использованию переменной как SQL параметра в дизайнере отчетов.
|
При создании запроса есть возможность использовать объект Параметр (Parameter). Данный объект предназначен для передачи в запрос дополнительных условий для выборки данных. К примеру, если требуется, чтобы запрос использовал какое-либо значение вводимое пользователем при каждом выполнении запроса, то можно создать запрос с использованием параметров. Объект Параметр может быть использован только совместно с SQL источниками данных. Такие источники данных обычно имеют поле Текст запроса (Text Query). Для того, чтобы вставить параметр в запрос следует нажать кнопку Новый параметр (New Parameter).
После нажатия данной кнопки будет создан новый параметр, который будет отображен в закладке Параметры на панели перечня элементов.
Каждый параметр имеет свойства, с помощью которых можно изменить его настройки.
С помощью свойства Наименование (Name) можно изменить имя параметра. Это свойство работает только для именованных параметров.
Для каждого параметра можно указать значение, которое используется для заполнения параметра. Значение может быть выражением, const, переменной и т.д. К примеру, x+y или variable.
Свойство Размер (Size) предоставляет возможность изменить размерность типа используемого в параметре. Следует помнить, что в базе данных каждый тип имеет свою размерность. Поэтому при использовании параметра в запросе, необходимо указывать корректную размерность типа. Для некоторых адаптеров баз данных размерность можно не указывать, но обычно если размерность не указана или указана неверно, то запросы с использованием таких параметров будут выполнены некорректно.
Для того, чтобы изменить тип параметра следует использовать значения свойства Тип (Type). Значения данного свойства находятся в выпадающем списке, и представляет собой перечисление типов используемых в параметрах для конкретной базы данных. Стоит учитывать, что список типов отличается в зависимости от базы данных.
Также параметр необходимо указать и в самом запросе. Ниже представлен пример схематичного расположения параметров в запросе:
Информация |
В запросах к некоторым базам данных, например к Oracle вместо символа @, перед наименованием параметра, указывается символ ":".
|
Как правило, для указания параметра в запросе используется символ @. Символ @ используется с именованными параметрами, т.е. после символа @ следует имя параметра. Но в некоторых базах данных (к примеру в OleDB), символ @ может не восприниматься адаптером базы данных и запросы с параметрами работать не будут. В данном случае, можно использовать неименованные параметры. Для указания в запросе неименованных параметров используется символ ?. После символа ? не указывается имя параметра. В этом случае, важен порядок параметров в закладке Параметры. По мере указания символов ? в запросе, параметры будут браться последовательно из закладки Параметры в направлении "сверху-вниз". Рассмотрим на примере. Допустим есть три параметра, которые указываются в запросе:
Поскольку в данном случае используются неименованные параметры (обозначенные символом ?), то при выполнении запроса параметры будут браться из закладки Параметры последовательно "сверху-вниз". На рисунке снизу схематично представлено сопоставление параметров из закладка Параметры к параметрам в запросе:
При этом, используемые параметры в данном примере, могут иметь имена, но при использовании символа ? они не играют роли. После того, как запрос с параметрами создан и выполнен, параметры также будут отображаться в Словаре данных, в созданном источнике данных, во вкладке Параметры. На рисунке снизу представлен пример панели Словаря данных и расположения в нем параметров:
Для того, чтобы отредактировать параметр отдельно от источника данных, следует выделить Параметр в словаре данных и нажать кнопку Редактировать (Edit) на панели инструментов в словаре или выбрать пункт Редактировать в контекстном меню выделенного параметра. После этого, пользователю будет отображено окно Редактирование параметра (Edit Parameter), в которым можно изменить настройки выделенного параметра.
В данном поле отображается используемое Наименование (Name) параметра, которое можно отредактировать;
B этом поле отображается используемый Тип (Type) параметра, который можно отредактировать;
Поле для ввода значений. В зависимости от вкладки указывается выражение или выбирается переменная.
Кнопка Сохранить копию (Save a Copy) сохраняет копию редактируемого параметра, с присвоением постфикса Copy в имени параметра.
Вкладка Выражение (Expression). На этой вкладке в качестве значения параметра, указывается выражение, ссылка на колонку данных и т.д.
Вкладка Переменная (Variable). На этой вкладке в качестве значения параметра выбирается переменная.
Использование переменной как параметра
В параметре как значение можно указать переменную. В этом случае, значения переменной будут значениями параметра при запросе на выборку данных. Использовать переменную в запросе как параметр можно двумя способами:
Создать переменную в словаре данных. Открыть на редактирование источник данных. Создать параметр в источнике данных. Указать переменную как значение этого параметра. Прописать параметр в тексте запроса.
При создании или редактировании переменной, установить флажок Использовать как SQL параметр (Allow using as SQL parameter):
Прописать эту переменную в тексте запроса, используя специальный символ "@" перед именем переменной:
Нажмите кнопку ОК. Теперь переменная присутствует в источнике данных, и используется как параметр в запросе.