Способы доступа к базе данных, которые предоставляют back-end компоненты ядра:
- Доступ через ORM-модель.
- Прямой доступ.
Для доступа к данным рекомендуется использовать ORM-модель, хотя прямой доступ к базе данных также реализован в back-end компонентах ядра. Выполнение запросов к базе данных через ORM-модель подробно описано в статье Доступ к данным через ORM.
В этой статье будет рассмотрено выполнение запросов к базе данных через прямой доступ.
Классы, которые реализуют работу с данными через прямой доступ:
- Terrasoft.Core.DB.Select — построение запросов на получение записей из таблиц базы данных.
- Terrasoft.Core.DB.Insert — построение запросов на добавление записей в таблицы базы данных.
- Terrasoft.Core.DB.InsertSelect — построение запросов на добавление записей в таблицу базы данных на основании данных, полученных в запросах на получение записей из таблицы базы данных.
- Terrasoft.Core.DB.Update — построение запросов на изменение записей в таблице базы данных.
- Terrasoft.Core.DB.UpdateSelect — построение запросов на изменение записей в таблице базы данных на основании данных, полученных в запросах на получение записей из таблицы базы данных.
- Terrasoft.Core.DB.Delete — построение запросов на удаление записей в таблице базы данных.
- Terrasoft.Core.DB.DBExecutor — построение и выполнение сложных запросов (например, с несколькими вложенными фильтрациями, различными комбинациями join-ов и т. д.) к базе данных.
Получить данные из базы данных
Классы, которые реализуют получение данных из базы данных:
- Terrasoft.Core.DB.Select — получение данных из базы данных через прямой доступ.
- Terrasoft.Core.Entities.EntitySchemaQuery — получение данных из базы данных через ORM-модель. Выполнение запросов к базе данных с использованием класса Terrasoft.Core.Entities.EntitySchemaQuery подробно описано в статье Доступ к данным через ORM.
Назначение класса Terrasoft.Core.DB.Select — построение запросов на выборку записей из таблиц базы данных. После создания и конфигурирования экземпляра класса будет построен SELECT-запрос к базе данных приложения. В запрос можно добавить колонки, фильтры и условия ограничений.
Особенности класса Terrasoft.Core.DB.Select:
- В результирующем запросе не учитываются права доступа текущего пользователя. Пользователь получает доступ ко всем таблицам и записям базы данных.
- В результирующем запросе не учитываются данные из хранилища кэша.
Результат выполнения запроса — экземпляр, реализующий интерфейс System.Data.IDataReader, или скалярное значение соответствующего типа.
При необходимости построения запросов на выборку записей из базы данных с учетом прав доступа пользователя и данных из хранилища кэша, используйте класс Terrasoft.Core.Entities.EntitySchemaQuery.
Добавить данные в базу данных
Классы, которые реализуют добавление данных в базу данных:
- Terrasoft.Core.DB.Insert.
- Terrasoft.Core.DB.InsertSelect.
Массовое добавление данных
Назначение класса Terrasoft.Core.DB.Insert — построение запросов на добавление записей в таблицы базы данных. После создания и конфигурирования экземпляра класса будет построен INSERT-запрос к базе данных приложения.
Результат выполнения запроса — количество записей, которые были добавлены с помощью запроса.
Класс содержит реализацию функциональности многострочной вставки. Для этого предназначен метод Values(). При вызове метода Values() все последующие вызовы метода Set() попадают в новый экземпляр ColumnsValues. Если коллекция ColumnsValuesCollection содержит более одного набора данных, то будет построен запрос с несколькими блоками Values().
В результате будет сформирован SQL-запрос.
Особенности использования многострочного добавления данных:
- Ограничение количества параметров в MS SQL при использовании Column.Parameter в выражении Set() — 2100 параметров.
-
При превышении допустимого количества параметров разбивку запроса на подзапросы должен выполнить разработчик, поскольку класс Terrasoft.Core.DB.Insert не предоставляет такую возможность.
- Валидацию совпадения количества колонок и количества условий Set() должен выполнить разработчик, поскольку класс Terrasoft.Core.DB.Insert не предоставляет такую возможность. При несовпадении количества возникнет исключение на уровне работы СУБД.
Добавление данных из выборки
Назначение класса Terrasoft.Core.DB.InsertSelect — построение запросов на добавление записей в таблицы базы данных на основании данных, полученных в запросах на получение записей из таблицы базы данных. То есть в качестве источника данных запроса используется экземпляр класса Terrasoft.Core.DB.Select. После создания и конфигурирования экземпляра класса будет построен INSERT INTO SELECT-запрос к базе данных приложения.
Особенность класса Terrasoft.Core.DB.InsertSelect — в результирующем запросе для добавляемых записей не учитываются права доступа текущего пользователя. Пользовательское соединение используется только для доступа к таблице базы данных.
Результат выполнения запроса — добавление в таблицы базы данных записей, которые были получены в Select-запросе.
Изменить данные в базе данных
Классы, которые реализуют изменение данных в базе данных:
- Terrasoft.Core.DB.Update.
- Terrasoft.Core.DB.UpdateSelect.
Массовое изменение данных
Назначение класса Terrasoft.Core.DB.Update — построение запросов на изменение записей в таблицах базы данных. После создания и конфигурирования экземпляра класса будет построен UPDATE-запрос к базе данных приложения.
Изменение данных на основании выборки
Назначение класса Terrasoft.Core.DB.UpdateSelect — построение запросов на изменение записей в таблицах базы данных на основании данных, полученных в запросах на получение записей из таблицы базы данных. То есть в качестве источника данных запроса используется экземпляр класса Terrasoft.Core.DB.Select. После создания и конфигурирования экземпляра класса будет построен UPDATE FROM-запрос к базе данных приложения.
Результат выполнения запроса — изменение в таблице базы данных записей, которые были получены в Select-запросе.
Удалить данные из базы данных
Terrasoft.Core.DB.Delete — класс, который реализует удаление данных из базы данных.
Назначение класса Terrasoft.Core.DB.Delete — построение запросов на удаление записей из таблиц базы данных. После создания и конфигурирования экземпляра класса будет построен DELETE-запрос к базе данных приложения.
Использовать многопоточность при работе с базой данных
Многопоточность — использование нескольких параллельных потоков при отправке запросов к базе данных через UserConnection.
Terrasoft.Core.DB.DBExecutor — класс, который позволяет использовать многопоточность. Реализует построение и выполнение нескольких запросов к базе данных в одной транзакции. Одному пользователю доступен только один экземпляр DBExecutor. Пользователь не имеет возможности создавать новые экземпляры.
Использование многопоточности может привести к проблемам синхронизации старта и подтверждения транзакций. Проблема возникает, даже если DBExecutor не используется напрямую, а используется, например, через EntitySchemaQuery.
Особенность класса Terrasoft.Core.DB.DBExecutor — создание экземпляра DBExecutor необходимо оборачивать в оператор using. Это связано с тем, что для работы с базой данных используются неуправляемые (unmanaged) ресурсы. Также для освобождения ресурсов можно явно вызвать метод Dispose() . Использование оператора using подробно описано в официальной документации Microsoft.
Транзакция начинается вызовом метода dbExecutor.StartTransaction и заканчивается вызовом dbExecutor.CommitTransaction или dbExecutor.RollbackTransaction. Если выполнение вышло за область видимости блока using и не был вызван метод dbExecutor.CommitTransaction, происходит автоматический откат транзакции.
Ниже представлены фрагменты исходного кода с использованием DBExecutor. Нельзя выполнять вызов методов экземпляра DBExecutor в параллельных потоках.
В большинстве случаев запрос на изменение данных должен содержать условие Where, которое уточняет какие именно записи необходимо изменить. Если не указать условие Where, то будут изменены все записи.
Пример 1
Пример 2
Условие Where относится к запросу Select. Запрос Update не содержит условия Where, поскольку необходимо изменить все записи.
Пространство имен Terrasoft.Core.DB.
Класс Terrasoft.Core.DB.Select предназначен для построения запросов выборки записей из таблиц базы данных. В результате создания и конфигурирования экземпляра этого класса будет построен запрос в базу данных приложения в виде SQL-выражения SELECT. В запрос можно добавить требуемые колонки, фильтры и условия ограничений. Результаты выполнения запроса возвращаются в виде экземпляра, реализующего интерфейс System.Data.IDataReader, либо скалярного значения требуемого типа.
Конструкторы
Создает экземпляр класса с указанным UserConnection.
Создает экземпляр класса с указанным UserConnection и токеном отмены выполнения управляемого потока.
Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.
Свойства
Пользовательское подключение, используемое при выполнении запроса.
Количество записей, которые вернет запрос после выполнения.
Коллекция параметров запроса.
Определяет наличие параметров у запроса.
Определяет, добавлять ли параметры запроса в текст запроса как значения.
Коллекция выражений Join в запросе.
Определяет наличие выражений Join в запросе.
Условие выражения Where запроса.
Определяет наличие выражения Where в запросе.
Условие выражения Having запроса.
Определяет наличие выражения Having в запросе.
Коллекция выражений, по которым выполняется сортировка результатов запроса.
Определяет наличие условий сортировки результатов запроса.
Коллекция выражений, по которым выполняется группировка результатов запроса.
Определяет наличие условий группировки результатов запроса.
Определяет, должен ли запрос возвращать только уникальные записи.
Коллекция выражений колонок запроса.
Определяет возможность постраничного возврата результата запроса.
Количество строк, которые необходимо пропустить при возврате результата запроса.
Тип запроса (см. статью Настройка отдельного пула запросов).
Методы
Очищает закэшированный текст запроса.
Возвращает коллекцию параметров, используемых запросом.
Очищает коллекцию параметров запроса.
Инициализирует коллекцию параметров запроса.
Выполняет запрос, используя экземпляр DBExecutor. Возвращает объект, реализующий интерфейс IDataReader.
dbExecutor | Экземпляр DBExecutor, который используется для выполнения запроса. |
Выполняет запрос, используя экземпляр DBExecutor. Возвращает объект, реализующий интерфейс IDataReader.
behavior | Предоставляет описание результатов запроса и их эффект на базу данных. |
dbExecutor | Экземпляр DBExecutor, который используется для выполнения запроса. |
Выполняет запрос, вызывая переданный метод делегата ExecuteReaderReadMethod для каждой записи результирующего набора.
readMethod | Метод делегата ExecuteReaderReadMethod. |
Выполняет запрос. Возвращает типизированный первый столбец первой записи результирующего набора.
Выполняет запрос, используя экземпляр DBExecutor. Возвращает типизированный первый столбец первой записи результирующего набора.
dbExecutor | Экземпляр DBExecutor, который используется для выполнения запроса. |
Добавляет к SQL-запросу ключевое слово DISTINCT. Исключает дублирование записей в результирующем наборе. Возвращает экземпляр запроса.
Устанавливает количество записей, возвращаемых в результирующем наборе. При этом меняется значение свойства RowCount. Возвращает экземпляр запроса.
rowCount | Количество первых записей результирующего набора. |
Добавляет указанный в аргументе псевдоним для последнего выражения запроса. Возвращает экземпляр запроса.
alias | Псевдоним выражения запроса. |
Добавляет выражение, подзапрос или параметр в коллекцию выражений колонок запроса. Возвращает экземпляр запроса.
sourceColumnAlias | Псевдоним колонки, для которой добавляется выражение. |
sourceAlias | Псевдоним источника, из которого добавляется выражение колонки. |
subSelect | Добавляемый подзапрос выборки данных. |
subSelectQuery | Добавляемый подзапрос. |
queryCase | Добавляемое выражение для оператора Case. |
queryParameter | Добавляемый параметр запроса. |
columnExpression | Выражение, для результатов которого добавляется условие. |
Добавляет в запрос источник данных. Возвращает экземпляр запроса.
schemaName | Название схемы. |
subSelect | Подзапрос выборки, результаты которого становятся источником данных для текущего запроса. |
subSelectQuery | Подзапрос, результаты которого становятся источником данных для текущего запроса. |
sourceExpression | Выражение источника данных запроса. |
Присоединяет к текущему запросу схему, подзапрос или выражение.
joinType | Тип присоединения. |
schemaName | Название присоединяемой схемы. |
subSelect | Присоединяемый подзапрос выборки данных. |
subSelectQuery | Присоединяемый подзапрос. |
sourceExpression | Присоединяемое выражение. |
Inner | Внутреннее соединение. |
LeftOuter | Левое внешнее соединение. |
RightOuter | Правое внешнее соединение. |
FullOuter | Полное соединение. |
Cross | Перекрестное соединение. |
Добавляет к текущему запросу начальное условие.
sourceColumnAlias | Псевдоним колонки, для которой добавляется условие. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки данных, для результатов которого добавляется условие. |
subSelectQuery | Подзапрос, для результатов которого добавляется условие. |
columnExpression | Выражение, для результатов которого добавляется условие. |
condition | Условие запроса. |
К текущему условию запроса добавляет условие (предикат), используя логическую операцию И.
sourceColumnAlias | Псевдоним колонки, для которой добавляется предикат. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки данных, используемый в качестве предиката. |
subSelectQuery | Подзапрос, используемый в качестве предиката. |
parameter | Параметр, для которого добавляется предикат. |
columnExpression | Выражение, используемое в качестве предиката. |
condition | Условие запроса. |
К текущему условию запроса добавляет условие (предикат), используя логическую операцию ИЛИ.
sourceColumnAlias | Псевдоним колонки, для которой добавляется предикат. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос на выборку данных, используемый в качестве предиката. |
subSelectQuery | Подзапрос, используемый в качестве предиката. |
parameter | Параметр, для которого добавляется предикат. |
columnExpression | Выражение, используемое в качестве предиката. |
condition | Условие запроса. |
Выполняет сортировку результатов запроса. Возвращает экземпляр запроса.
direction | Порядок сортировки. |
sourceColumnAlias | Псевдоним колонки, по которой выполняется сортировка. |
sourceAlias | Псевдоним источника. |
queryFunction | Функция, значение которой используется в качестве ключа сортировки. |
subSelect | Подзапрос на выборку данных, результаты которого используются в качестве ключа сортировки. |
subSelectQuery | Подзапрос, результаты которого используются в качестве ключа сортировки. |
columnExpression | Выражение, результаты которого используются в качестве ключа сортировки. |
Выполняет сортировку результатов запроса в порядке возрастания. Возвращает экземпляр запроса.
sourceColumnAlias | Псевдоним колонки, по которой выполняется сортировка. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос на выборку данных, результаты которого используются в качестве ключа сортировки. |
subSelectQuery | Подзапрос, результаты которого используются в качестве ключа сортировки. |
columnExpression | Выражение, результаты которого используются в качестве ключа сортировки. |
Выполняет сортировку результатов запроса в порядке убывания. Возвращает экземпляр запроса.
sourceColumnAlias | Псевдоним колонки, по которой выполняется сортировка. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки, результаты которого используются в качестве ключа сортировки. |
subSelectQuery | Подзапрос, результаты которого используются в качестве ключа сортировки. |
columnExpression | Выражение, результаты которого используются в качестве ключа сортировки. |
Выполняет группировку результатов запроса. Возвращает экземпляр запроса.
sourceColumnAlias | Псевдоним колонки, по которой выполняется группировка. |
sourceAlias | Псевдоним источника. |
columnExpression | Выражение, результаты которого используются в качестве ключа группировки. |
Добавляет в текущий запрос групповое условие. Возвращает экземпляр Terrasoft.Core.DB.QueryCondition, представляющий групповое условие для параметра запроса.
sourceColumnAlias | Псевдоним колонки, по которой добавляется групповое условие. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки, для результатов которого добавляется групповое условие. |
subSelectQuery | Подзапрос, для результатов которого добавляется групповое условие. |
parameter | Параметр запроса, для которого добавляется групповое условие. |
columnExpression | Выражение, используемое в качестве предиката. |
Объединяет результаты переданного запроса с результатами текущего запроса, исключая дубликаты из результирующего набора.
unionSelect | Подзапрос выборки. |
unionSelectQuery | Подзапрос. |
Объединяет результаты переданного запроса с результатами текущего запроса. Дубликаты из результирующего набора не исключаются.
unionSelect | Подзапрос выборки. |
unionSelectQuery | Подзапрос. |
Пространство имен Terrasoft.Core.DB.
Класс Terrasoft.Core.DB.Insert предназначен для построения запросов на добавление записей в таблицы базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос в базу данных приложения в виде SQL-выражения INSERT. В результате выполнения запроса возвращается количество задействованных запросом записей.
Конструкторы
Создает новый экземпляр класса Entity для заданного пользовательского подключения UserConnection.
Создает экземпляр класса с указанным UserConnection.
Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.
Свойства
Пользовательское подключение, используемое при запросе.
Источник данных
Коллекция параметров запроса.
Определяет, имеет ли запрос параметры.
Определяет, добавлять ли параметры запроса в текст запроса как значения.
Коллекция значений колонок запроса.
Коллекция значений колонок для множественного добавления записей.
Методы
Очищает кэшированный текст запроса.
Возвращает коллекцию параметров, используемых запросом.
Очищает коллекцию параметров запроса.
Устанавливает значение для параметра запроса.
name | Название параметра. |
value | Значение. |
Инициализирует коллекцию параметров запроса.
Выполняет запрос. Возвращает количество задействованных запросом записей.
Выполняет запрос, используя экземпляр DBExecutor. Возвращает количество задействованных запросом записей.
Добавляет в текущий запрос источник данных.
schemaName | Название схемы. |
source | Источник данных. |
Добавляет в текущий запрос предложение SET для присвоения колонке переданного выражения или параметра. Возвращает текущий экземпляр Insert.
sourceColumnAlias | Псевдоним колонки. |
subSelect | Подзапрос на выборку. |
subSelectQuery | Подзапрос. |
columnExpression | Выражение колонки. |
parameter | Параметр запроса. |
Инициализирует значения для множественного добавления записей.
Пространство имен Terrasoft.Core.DB.
Класс Terrasoft.Core.DB.InsertSelect предназначен для построения запросов на добавление записей в таблицы базы данных Creatio. При этом в качестве источника добавляемых данных используется экземпляр класса Terrasoft.Core.DB.Select. В результате создания и конфигурирования экземпляра Terrasoft.Core.DB.InsertSelect будет построен запрос базу данных приложения в виде SQL-выражения INSERT INTO SELECT.
Конструкторы
Создает экземпляр класса с указанным UserConnection.
Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.
Свойства
Пользовательское подключение, используемое при запросе.
Источник данных
Коллекция параметров запроса.
Определяет, имеет ли запрос параметры.
Определяет, добавлять ли параметры запроса в текст запроса как значения.
Коллекция значений колонок запроса.
Используемый в запросе экземпляр Terrasoft.Core.DB.Select.
Методы
Очищает кэшированный текст запроса.
Возвращает коллекцию параметров, используемых запросом.
Очищает коллекцию параметров запроса.
Устанавливает значение для параметра запроса.
name | Название параметра. |
value | Значение. |
Инициализирует коллекцию параметров запроса.
Выполняет запрос. Возвращает количество задействованных запросом записей.
Выполняет запрос, используя экземпляр DBExecutor. Возвращает количество задействованных запросом записей.
Добавляет в текущий запрос источник данных.
schemaName | Название схемы. |
source | Источник данных. |
Добавляет в текущий запрос набор колонок, в которые будут добавлены значения с помощью подзапроса. Возвращает текущий экземпляр InsertSelect.
sourceColumnAliases | Коллекция или массив параметров метода, содержащие псевдонимы колонок. |
columns | Коллекция или массив параметров метода, содержащие экземпляры колонок. |
Добавляет в текущий запрос предложение SELECT.
subSelect | Подзапрос на выборку. |
subSelectQuery | Подзапрос. |
Пространство имен Terrasoft.Core.DB.
Класс Terrasoft.Core.DB.Update предназначен для построения запросов на изменение записей в таблице базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос базу данных приложения в виде SQL-выражения UPDATE.
Конструкторы
Создает экземпляр класса, используя UserConnection.
Создает экземпляр класса для схемы с указанным названием, используя UserConnection.
Создает экземпляр класса для указанного источника данных, используя UserConnection.
Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.
Свойства
Пользовательское подключение, используемое при выполнении запроса.
Условие выражения Where запроса.
Определяет наличие выражения Where в запросе.
Источник данных запроса.
Коллекция значений колонок запроса.
Методы
Очищает закэшированный текст запроса.
Возвращает коллекцию параметров, используемых запросом.
Выполняет запрос. Возвращает количество задействованных запросом записей.
Выполняет запрос, используя экземпляр DBExecutor. Возвращает количество задействованных запросом записей.
Добавляет к текущему запросу начальное условие.
sourceColumnAlias | Псевдоним колонки, для которой добавляется условие. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки данных, для результатов которого добавляется условие. |
subSelectQuery | Подзапрос, для результатов которого добавляется условие. |
columnExpression | Выражение, для результатов которого добавляется условие. |
condition | Условие запроса. |
К текущему условию запроса добавляет условие (предикат), используя логическую операцию И.
sourceColumnAlias | Псевдоним колонки, для которой добавляется предикат. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки данных, используемый в качестве предиката. |
subSelectQuery | Подзапрос, используемый в качестве предиката. |
parameter | Параметр, для которого добавляется предикат. |
columnExpression | Выражение, используемое в качестве предиката. |
condition | Условие запроса. |
К текущему условию запроса добавляет условие (предикат), используя логическую операцию ИЛИ.
sourceColumnAlias | Псевдоним колонки, для которой добавляется предикат. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос на выборку данных, используемый в качестве предиката. |
subSelectQuery | Подзапрос, используемый в качестве предиката. |
parameter | Параметр, для которого добавляется предикат. |
columnExpression | Выражение, используемое в качестве предиката. |
condition | Условие запроса. |
Добавляет в текущий запрос предложение SET для присвоения колонке переданного выражения или параметра. Возвращает текущий экземпляр Update.
sourceColumnAlias | Псевдоним колонки. |
subSelect | Подзапрос на выборку. |
subSelectQuery | Подзапрос. |
columnExpression | Выражение колонки. |
parameter | Параметр запроса. |
Пространство имен Terrasoft.Core.DB.
Класс Terrasoft.Core.DB.UpdateSelect предназначен для построения запросов на изменение записей в таблице базы данных Creatio. При этом в качестве источника добавляемых данных используется экземпляр класса Terrasoft.Core.DB.Select. В результате создания и конфигурирования экземпляра этого класса будет построен запрос в базу данных приложения в виде SQL-выражения UPDATE FROM.
Конструкторы
Создает экземпляр класса для схемы с указанным названием, используя UserConnection.
userConnection | Пользовательское подключение, используемое при запросе. |
schemaName | Название схемы. |
alias | Псевдоним таблицы. |
Методы
Добавляет к запросу FROM-выражение.
schemaName | Название таблицы, в которую вносятся изменения. |
alias | Псевдоним таблицы, в которую вносятся изменения. |
Добавляет к запросу SET-выражение для колонки.
sourceColumnAlias | Псевдоним колонки. |
columnExpression | Выражение, содержащее значение колонки. |
Пространство имен Terrasoft.Core.DB.
Класс Terrasoft.Core.DB.Delete предназначен для построения запросов на удаление записей в таблице базы данных Creatio. В результате создания и конфигурирования экземпляра этого класса будет построен запрос базу данных приложения в виде SQL-выражения DELETE.
Конструкторы
Создает экземпляр класса, используя UserConnection.
Создает экземпляр класса, являющийся клоном экземпляра, переданного в качестве аргумента.
Свойства
Пользовательское подключение, используемое при выполнении запроса.
Условие выражения Where запроса.
Определяет наличие выражения Where в запросе.
Источник данных запроса.
Методы
Очищает закэшированный текст запроса.
Возвращает коллекцию параметров, используемых запросом.
Выполняет запрос. Возвращает количество задействованных запросом записей.
Выполняет запрос, используя экземпляр DBExecutor. Возвращает количество задействованных запросом записей.
Добавляет к текущему запросу начальное условие.
sourceColumnAlias | Псевдоним колонки, для которой добавляется условие. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки данных, для результатов которого добавляется условие. |
subSelectQuery | Подзапрос, для результатов которого добавляется условие. |
columnExpression | Выражение, для результатов которого добавляется условие. |
condition | Условие запроса. |
К текущему условию запроса добавляет условие (предикат), используя логическую операцию И.
sourceColumnAlias | Псевдоним колонки, для которой добавляется предикат. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос выборки данных, используемый в качестве предиката. |
subSelectQuery | Подзапрос, используемый в качестве предиката. |
parameter | Параметр, для которого добавляется предикат. |
columnExpression | Выражение, используемое в качестве предиката. |
condition | Условие запроса. |
К текущему условию запроса добавляет условие (предикат), используя логическую операцию ИЛИ.
sourceColumnAlias | Псевдоним колонки, для которой добавляется предикат. |
sourceAlias | Псевдоним источника. |
subSelect | Подзапрос на выборку данных, используемый в качестве предиката. |
subSelectQuery | Подзапрос, используемый в качестве предиката. |
parameter | Параметр, для которого добавляется предикат. |
columnExpression | Выражение, используемое в качестве предиката. |
condition | Условие запроса. |
Добавляет в текущий запрос источник данных. Возвращает текущий экземпляр Delete.
schemaName | Название схемы (таблицы, представления). |
source | Источник данных. |
Класс Terrasoft.Core.DB.QueryFunction реализует функцию выражения.
Функция выражения реализована в следующих классах:
- QueryFunction — базовый класс функции выражения.
- AggregationQueryFunction — реализует агрегирующую функцию выражения.
- IsNullQueryFunction — заменяет значения null замещающим выражением.
- CreateGuidQueryFunction — реализует функцию выражения нового идентификатора.
- CurrentDateTimeQueryFunction — реализует функцию выражения текущей даты и времени.
- CoalesceQueryFunction — возвращает первое выражение из списка аргументов, не равное null.
- DatePartQueryFunction — реализует функцию выражения части значения типа Дата/Время.
- DateAddQueryFunction — реализует функцию выражения даты, полученной путем добавления указанного промежутка времени к заданной дате.
- DateDiffQueryFunction — реализует функцию выражения разницы дат, полученного путем вычитания заданных дат.
- CastQueryFunction — приводит выражение аргумента к заданному типу данных.
- UpperQueryFunction — преобразовывает символы выражения аргумента в верхний регистр.
- CustomQueryFunction — реализует пользовательскую функцию.
- DataLengthQueryFunction — определяет число байтов, использованных для представления выражения.
- TrimQueryFunction — удаляет начальные и конечные пробелы из выражения.
- LengthQueryFunction — возвращает длину выражения.
- SubstringQueryFunction — получает часть строки.
- ConcatQueryFunction — формирует строку, которая является результатом объединения строковых значений аргументов функции.
- WindowQueryFunction — реализует функцию SQL окна.
Класс QueryFunction
Пространство имен Terrasoft.Core.DB.
Базовый класс функции выражения.
Методы
Возвращает выражение отрицания значения переданной функции.
operand | Функция выражения. |
Перегрузка оператора отрицания переданной функции выражения.
operand | Функция выражения. |
Возвращает выражение арифметического сложения переданных функций выражения.
leftOperand | Левый операнд в операции сложения. |
rightOperand | Правый операнд в операции сложения. |
Перегрузка оператора сложения двух функций выражений.
leftOperand | Левый операнд в операции сложения. |
rightOperand | Правый операнд в операции сложения. |
Возвращает выражение вычитания правой функции выражения из левой.
leftOperand | Левый операнд в операции вычитания. |
rightOperand | Правый операнд в операции вычитания. |
Перегрузка оператора вычитания правой функции выражения из левой.
leftOperand | Левый операнд в операции вычитания. |
rightOperand | Правый операнд в операции вычитания. |
Возвращает выражение умножения переданных функций выражений.
leftOperand | Левый операнд в операции умножения. |
rightOperand | Правый операнд в операции умножения. |
Перегрузка оператора умножения двух функций выражений.
leftOperand | Левый операнд в операции умножения. |
rightOperand | Правый операнд в операции умножения. |
Возвращает выражение деления левой функции выражения на правую.
leftOperand | Левый операнд в операции деления. |
rightOperand | Правый операнд в операции деления. |
Перегрузка оператора деления функций выражений.
leftOperand | Левый операнд в операции деления. |
rightOperand | Правый операнд в операции деления. |
Создает копию текущего экземпляра QueryFunction.
Формирует текст запроса с использованием переданных экземпляра StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запросов к базе данных. |
Добавляет переданную коллекцию параметров в аргументы функции.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Возвращает коллекцию выражений колонки запроса для текущей функции запроса.
Возвращает выражение колонки запроса для текущей функции запроса.
Класс AggregationQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует агрегирующую функцию выражения.
Конструкторы
Инициализирует новый экземпляр AggregationQueryFunction.
Инициализирует новый экземпляр AggregationQueryFunction с заданным типом агрегирующей функции для указанного выражения колонки.
aggregationType | Тип агрегирующей функции. |
expression | Выражение колонки, к которому применяется агрегирующая функция. |
Инициализирует новый экземпляр AggregationQueryFunction с заданным типом агрегирующей функции для указанного выражения колонки.
aggregationType | Тип агрегирующей функции. |
expression | Выражение колонки, к которому применяется агрегирующая функция. |
Инициализирует новый экземпляр AggregationQueryFunction, являющийся клоном переданной агрегирующей функции выражения.
source | Агрегирующая функция выражения AggregationQueryFunction, клон которой создается. |
Свойства
Тип агрегирующей функции.
Область применения агрегирующей функции.
Выражение аргумента функции.
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запроса DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запросов к базе данных. |
Добавляет переданную коллекцию параметров в аргументы функции.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра AggregationQueryFunction.
Устанавливает для текущей агрегирующей функции область применения Ко всем значениям.
Устанавливает для текущей агрегирующей функции область применения К уникальным значениям.
Класс IsNullQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс заменяет значения null замещающим выражением.
Конструкторы
Инициализирует новый экземпляр IsNullQueryFunction.
Инициализирует новый экземпляр IsNullQueryFunction для заданных проверяемого выражения и замещающего выражения.
checkExpression | Выражение, которое проверяется на равенство null. |
replacementExpression | Выражение, которое возвращается функцией, если checkExpression равно null. |
Инициализирует новый экземпляр IsNullQueryFunction, являющийся клоном переданной функции выражения.
source | Агрегирующая функция выражения IsNullQueryFunction, клон которой создается. |
Свойства
Выражение аргумента функции, которое проверяется на равенство значению null.
Выражение аргумента функции, которое возвращается, если проверяемое выражение равно null.
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запросов к базе данных. |
Добавляет переданную коллекцию параметров в аргументы функции.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра IsNullQueryFunction.
Класс CreateGuidQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует функцию выражения нового идентификатора.
Конструкторы
Инициализирует новый экземпляр CreateGuidQueryFunction.
Инициализирует новый экземпляр CreateGuidQueryFunction, являющийся клоном переданной функции.
source | Функция CreateGuidQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Создает клон текущего экземпляра CreateGuidQueryFunction.
Класс CurrentDateTimeQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует функцию выражения текущей даты и времени.
Конструкторы
Инициализирует новый экземпляр CurrentDateTimeQueryFunction.
Инициализирует новый экземпляр CurrentDateTimeQueryFunction, являющийся клоном переданной функции.
source | Функция CurrentDateTimeQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Создает клон текущего экземпляра CurrentDateTimeQueryFunction.
Класс CoalesceQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс возвращает первое выражение из списка аргументов, не равное null.
Конструкторы
Инициализирует новый экземпляр CoalesceQueryFunction.
Инициализирует новый экземпляр CoalesceQueryFunction, являющийся клоном переданной функции.
source | Функция CoalesceQueryFunction, клон которой создается. |
Инициализирует новый экземпляр CoalesceQueryFunction для переданной коллекции выражений колонок.
expressions | Коллекция выражений колонок запроса. |
Инициализирует новый экземпляр CoalesceQueryFunction для переданного массива выражений колонок.
expressions | Массив выражений колонок запроса. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Создает клон текущего экземпляра CoalesceQueryFunction.
Добавляет заданные параметры в коллекцию.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Класс DatePartQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует функцию выражения части значения типа Дата/Время.
Конструкторы
Инициализирует новый экземпляр DatePartQueryFunction.
Инициализирует новый экземпляр DatePartQueryFunction с заданным выражением колонки типа Дата/Время и указанной частью даты.
interval | Часть даты. |
expression | Выражение колонки типа Дата/Время. |
Инициализирует новый экземпляр DatePartQueryFunction, являющийся клоном переданной функции.
source | Функция DatePartQueryFunction, клон которой создается. |
Свойства
Выражение аргумента функции.
Часть даты, возвращаемая функцией.
Использование смещения всеобщего скоординированного времени (UTC) относительно заданного местного времени.
Смещение всеобщего скоординированного времени (UTC).
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет заданные параметры в коллекцию.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра DatePartQueryFunction.
Класс DateAddQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует функцию выражения даты, полученной путем добавления указанного промежутка времени к заданной дате.
Конструкторы
Инициализирует новый экземпляр DateAddQueryFunction.
Инициализирует экземпляр DateAddQueryFunction с заданными параметрами.
interval | Часть даты, к которой добавляется временной промежуток. |
number | Значение, которое добавляется к interval. |
expression | Выражение колонки, содержащей исходную дату. |
Инициализирует экземпляр DateAddQueryFunction, являющийся клоном переданной функции.
source | Экземпляр функции DateAddQueryFunction, клон которой создается. |
Свойства
Выражение колонки, содержащей исходную дату.
Часть даты, к которой добавляется временной промежуток.
Добавляемый временной промежуток.
Выражение, содержащие добавляемый временной промежуток.
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет заданные параметры в коллекцию.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра DateAddQueryFunction.
Класс DateDiffQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует функцию выражения разницы дат, полученного путем вычитания заданных дат.
Конструкторы
Инициализирует экземпляр DateDiffQueryFunction с заданными параметрами.
interval | Единица измерения разницы дат. |
startDateExpression | Выражение колонки, содержащей начальную дату. |
endDateExpression | Выражение колонки, содержащей конечную дату. |
Инициализирует экземпляр DateDiffQueryFunction, являющийся клоном переданной функции.
source | Экземпляр функции DateDiffQueryFunction, клон которой создается. |
Свойства
Выражение колонки, содержащей начальную дату.
Выражение колонки, содержащей конечную дату.
Единица измерения разницы дат, возвращаемая функцией.
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет заданные параметры в коллекцию.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра DateDiffQueryFunction.
Класс CastQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс приводит выражение аргумента к заданному типу данных.
Конструкторы
Инициализирует новый экземпляр CastQueryFunction с заданными выражением колонки и целевым типом данных.
expression | Выражение колонки запроса. |
castType | Целевой тип данных. |
Инициализирует новый экземпляр CastQueryFunction, являющийся клоном переданной функции.
source | Функция CastQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет заданные параметры в коллекцию.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра CastQueryFunction.
Класс UpperQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс преобразовывает символы выражения аргумента в верхний регистр.
Конструкторы
Инициализирует новый экземпляр UpperQueryFunction.
Инициализирует новый экземпляр UpperQueryFunction для заданного выражения колонки.
expression | Выражение колонки запроса. |
Инициализирует новый экземпляр UpperQueryFunction, являющийся клоном переданной функции.
source | Функция UpperQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет заданные параметры в коллекцию.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра UpperQueryFunction.
Класс CustomQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует пользовательскую функцию.
Конструкторы
Инициализирует новый экземпляр CustomQueryFunction.
Инициализирует новый экземпляр CustomQueryFunction для заданной функции и переданной коллекции выражений колонок.
functionName | Имя функции. |
expressions | Коллекция выражений колонок запроса. |
Инициализирует новый экземпляр CustomQueryFunction для заданной функции и переданного массива выражений колонок.
functionName | Имя функции. |
expressions | Массив выражений колонок запроса. |
Инициализирует новый экземпляр CustomQueryFunction, являющийся клоном переданной функции.
source | Функция CustomQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет заданные параметры в коллекцию.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра CustomQueryFunction.
Класс DataLengthQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс определяет число байтов, использованных для представления выражения.
Конструкторы
Инициализирует новый экземпляр DataLengthQueryFunction.
Инициализирует новый экземпляр DataLengthQueryFunction для заданного выражения колонки.
expression | Выражение колонки запроса. |
Инициализирует новый экземпляр DataLengthQueryFunction для заданного выражения колонки.
columnNameExpression | Выражение колонки запроса. |
Инициализирует новый экземпляр DataLengthQueryFunction, являющийся клоном переданной функции.
source | Функция DataLengthQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет в аргументы функции переданную коллекцию параметров.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра DataLengthQueryFunction.
Класс TrimQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс удаляет начальные и конечные пробелы из выражения.
Конструкторы
Инициализирует новый экземпляр TrimQueryFunction для заданного выражения колонки.
expression | Выражение колонки запроса. |
Инициализирует новый экземпляр TrimQueryFunction, являющийся клоном переданной функции.
source | Функция TrimQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет в аргументы функции переданную коллекцию параметров.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра TrimQueryFunction.
Класс LengthQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс возвращает длину выражения.
Конструкторы
Инициализирует новый экземпляр LengthQueryFunction.
Инициализирует новый экземпляр LengthQueryFunction для заданного выражения колонки.
expression | Выражение колонки запроса. |
Инициализирует новый экземпляр LengthQueryFunction, являющийся клоном переданной функции.
source | Функция LengthQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет в аргументы функции переданную коллекцию параметров.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра LengthQueryFunction.
Класс SubstringQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс получает часть строки.
Конструкторы
Инициализирует новый экземпляр SubstringQueryFunction для заданного выражения колонки, начальной позиции и длины подстроки.
expression | Выражение колонки запроса. |
start | Начальная позиция подстроки. |
length | Длина подстроки. |
Инициализирует новый экземпляр SubstringQueryFunction, являющийся клоном переданной функции.
source | Функция SubstringQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет в аргументы функции переданную коллекцию параметров.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра SubstringQueryFunction.
Класс ConcatQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс формирует строку, которая является результатом объединения строковых значений аргументов функции.
Конструкторы
Инициализирует новый экземпляр ConcatQueryFunction для переданной коллекции выражений.
expressions | Коллекция выражений колонок запроса. |
Инициализирует новый экземпляр ConcatQueryFunction, являющийся клоном переданной функции.
source | Функция ConcatQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет в аргументы функции переданную коллекцию параметров.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра ConcatQueryFunction.
Класс WindowQueryFunction
Пространство имен Terrasoft.Core.DB.
Класс реализует функцию SQL окна.
Конструкторы
Реализует функцию SQL окна.
innerFunction | Вложенная функция. |
Реализует функцию SQL окна.
innerFunction | Вложенная функция. |
partitionByExpression | Выражение для разделения запроса. |
orderByExpression | Выражение для сортировки запроса. |
Инициализирует новый экземпляр WindowQueryFunction, являющийся клоном переданной функции.
source | Функция WindowQueryFunction, клон которой создается. |
Методы
Формирует текст запроса с использованием заданных экземпляров StringBuilder и построителя запросов DBEngine.
sb | Экземпляр StringBuilder, с помощью которого формируется текст запроса. |
dbEngine | Экземпляр построителя запроса к базе данных. |
Добавляет в аргументы функции переданную коллекцию параметров.
resultParameters | Коллекция параметров запроса, которые добавляются в аргументы функции. |
Создает клон текущего экземпляра WindowQueryFunction.