YouTube

 

Видеоурок по использованию переменной как SQL параметра в дизайнере отчетов.

 

 

 

При создании запроса есть возможность использовать объект Параметр (Parameter). Данный объект предназначен для передачи в запрос дополнительных условий для выборки данных. К примеру, если требуется, чтобы запрос использовал какое-либо значение вводимое пользователем при каждом выполнении запроса, то можно создать запрос с использованием параметров. Объект Параметр может быть использован только совместно с SQL источниками данных. Такие источники данных обычно имеют поле Текст запроса (Text Query). Для того, чтобы вставить параметр в запрос следует нажать кнопку Новый параметр (New Parameter).

 

 

 

После нажатия данной кнопки будет создан новый параметр, который будет отображен в закладке Параметры на панели перечня элементов.

 

 

 

Каждый параметр имеет свойства, с помощью которых можно изменить его настройки.

 

 

 

img_1 С помощью свойства Наименование (Name) можно изменить имя параметра. Это свойство работает только для именованных параметров.

img_2 Для каждого параметра можно указать значение, которое используется для заполнения параметра. Значение может быть выражением, const, переменной и т.д. К примеру, x+y или variable.

img_3 Свойство Размер (Size) предоставляет возможность изменить размерность типа используемого в параметре. Следует помнить, что в базе данных каждый тип имеет свою размерность. Поэтому при использовании параметра в запросе, необходимо указывать корректную размерность типа. Для некоторых адаптеров баз данных размерность можно не указывать, но обычно если размерность не указана или указана неверно, то запросы с использованием таких параметров будут выполнены некорректно.

img_4 Для того, чтобы изменить тип параметра следует использовать значения свойства Тип (Type). Значения данного свойства находятся в выпадающем списке, и представляет собой перечисление типов используемых в параметрах для конкретной базы данных. Стоит учитывать, что список типов отличается в зависимости от базы данных.

 

Также параметр необходимо указать и в самом запросе. Ниже представлен пример схематичного расположения параметров в запросе:

 

 

 

Информация

 

В запросах к некоторым базам данных, например к Oracle вместо символа @, перед наименованием параметра, указывается символ ":".

 

 

 

Как правило, для указания параметра в запросе используется символ @. Символ @ используется с именованными параметрами, т.е. после символа @ следует имя параметра. Но в некоторых базах данных (к примеру в OleDB), символ @ может не восприниматься адаптером базы данных и запросы с параметрами работать не будут. В данном случае, можно использовать неименованные параметры. Для указания в запросе неименованных параметров используется символ ?. После символа ? не указывается имя параметра. В этом случае, важен порядок параметров в закладке Параметры. По мере указания символов ? в запросе, параметры будут браться последовательно из закладки Параметры в направлении "сверху-вниз". Рассмотрим на примере. Допустим есть три параметра, которые указываются в запросе:

 

 

 

Поскольку в данном случае используются неименованные параметры (обозначенные символом ?), то при выполнении запроса параметры будут браться из закладки Параметры последовательно "сверху-вниз". На рисунке снизу схематично представлено сопоставление параметров из закладка Параметры к параметрам в запросе:

 

 

 

При этом, используемые параметры в данном примере, могут иметь имена, но при использовании символа ? они не играют роли. После того, как запрос с параметрами создан и выполнен, параметры также будут отображаться в Словаре данных, в созданном источнике данных, во вкладке Параметры. На рисунке снизу представлен пример панели Словаря данных и расположения в нем параметров:

 

 

 

Для того, чтобы отредактировать параметр отдельно от источника данных, следует выделить Параметр в словаре данных и нажать кнопку Редактировать (Edit) на панели инструментов в словаре или выбрать пункт Редактировать в контекстном меню выделенного параметра. После этого, пользователю будет отображено окно Редактирование параметра (Edit Parameter), в которым можно изменить настройки выделенного параметра.

 

 

 

img_1 В данном поле отображается используемое Наименование (Name) параметра, которое можно отредактировать;  

img_2 B этом поле отображается используемый Тип (Type) параметра, который можно отредактировать;

img_3 Поле для ввода значений. В зависимости от вкладки указывается выражение или выбирается переменная.

img_4 Кнопка Сохранить копию (Save a Copy) сохраняет копию редактируемого параметра, с присвоением постфикса Copy в имени параметра.

img_5 Вкладка Выражение (Expression). На этой вкладке в качестве значения параметра, указывается выражение, ссылка на колонку данных и т.д.

img_6 Вкладка Переменная (Variable). На этой вкладке в качестве значения параметра выбирается переменная.

 

 

Использование переменной как параметра

В параметре как значение можно указать переменную. В этом случае, значения переменной будут значениями параметра при запросе на выборку данных. Использовать переменную в запросе как параметр можно двумя способами:

strel11 Создать переменную в словаре данных. Открыть на редактирование источник данных. Создать параметр в источнике данных. Указать переменную как значение этого параметра. Прописать параметр в тексте запроса.

strel11 При создании или редактировании переменной, установить флажок Использовать как SQL параметр (Allow using as SQL parameter):

 

 

 

Прописать эту переменную в тексте запроса, используя специальный символ "@" перед именем переменной:

 

 

 

Нажмите кнопку ОК. Теперь переменная присутствует в источнике данных, и используется как параметр в запросе.