Синтаксис:
function AddWhere( const Condition: WideString): Integer; |
Параметры:
Condition – условие ограничения выборки. Условие следует задавать в формате where-условия SQL-запроса:
{(<Условие1>) [and/or/xor (<Условие2>)]}[,...n]
Условие1, Условие2 – простые условия, формируемые по следующему формату:
[not ]<Имя поля> {<Оператор> <Значение>}|{is null}|{like <Значение>}|[between <Значение1> and <Значение2>}|{in ({<Значение>}[,...n])}
где:
• | Имя поля – имя или псевдоним поля набора данных. Если для поля не указан псевдоним и имя поля неуникально, то перед именем поля следует указывать имя или псевдоним таблицы в формате <Имя таблицы>.<Имя поля>. В условии можно использовать поля таблиц, указанных в разделе from. Имена и псевдонимы полей и таблиц можно получить с помощью свойств: |
• | Псевдоним поля - IRequisite.FieldName; |
• | Имя поля - IField.SQLFieldName, IRequisite.SQLFieldName; |
• | Псевдоним таблицы - IObject.TableName, IDataSet.TableName; |
• | Имя таблицы - IObject.SQLTableName, IDataSet.SQLTableName; |
• | Оператор - один из следующих операторов: =, <, >, <=, >=, <>; |
• | Значение - значение соответствующего типа. |
Для формирования параметра удобно использовать функцию Format.
Возвращаемое значение:
Идентификатор условия в запросе.
Описание:
Метод добавляет условие в раздел where SQL-запроса. Если раздел where еще не был определен, то он создается. Если раздел where уже был определен, то добавляемое условие объединяется с уже имеющимися условиями при помощи операции «and». Идентификатор условия в запросе следует использовать в качестве параметра метода DelWhere для удаления условия из запроса.
Примечание
При вызове метода не из ISBL-вычислений или из ISBL-вычислений с подключением к системе Directum, отличной от текущей, значение параметра должно строго соответствовать формату. В противном случае будет сгенерировано исключение.
Примеры:
// Добавить фильтрацию записей компоненты "Пользователи".
// UserLogin – логин пользователя.
// DomainName – имя домена.
UsersComponent = CreateReference(SYSREF_USERS; ; FALSE)
AddWhereID = UsersComponent.AddWhere(Format("%0:s.%1:s = '%2:s' and %0:s.%3:s = '%4:s'"; ArrayOf(UsersComponent.SQLTableName;
UsersComponent.Requisites(SYSREQ_USERS_LOGIN).SQLFieldName; UserLogin;
UsersComponent.Requisites(SYSREQ_USERS_DOMAIN).SQLFieldName; DomainName)))
// Открыть запись указанного пользователя.
UsersComponent.Open
// Убрать фильтрацию.
UsersComponent.DelWhere(AddWhereID)
// Добавить фильтрацию записей справочника "Пользователи".
// UserCode – имя пользователя.
UsersReference = CreateReference(SYSREF_USERS_REFERENCE; ; FALSE)
AddWhereID = UsersReference.AddWhere(Format("%s.%s = '%s'"; ArrayOf(UsersReference.SQLTableName;
UsersReference.Requisites('Дополнение').SQLFieldName; UserCode)))
// Открыть запись указанного пользователя.
UsersReference.Open
// Убрать фильтрацию.
UsersReference.DelWhere(AddWhereID)
Метод AddFrom Метод AddSelect Метод DelWhere Свойство IDataSet.SQLTableName Свойство IDataSet.TableName Свойство IField.Name Свойство IField.SQLFieldName Свойство IObject.SQLTableName Свойство IObject.TableName Свойство IRequisite.FieldName Свойство IRequisite.SQLFieldName |
© Компания Directum, 2020 | Сообщество пользователей Directum |