Построение запросов на добавление данных
Glossary Item Box
Для создания запросов для добавление данных в базу в bpm'online используется класс Insert.
В качестве параметров конструктор класса Insert может принимать следующие объекты:
- Пользовательское подключение (Insert (UserConnection)).
- Другой объект Insert (Insert). В результате будет создана копия запроса Insert, переданного в параметре.
Примеры простых запросов
Пример 1
var insert = new Insert(userConnection).Into("Contact") .Set("Name", Column.Parameter("ParameterNameValue")) .Set("Address", Column.Parameter("ParameterAddressValue")); |
INSERT INTO [dbo].[Contact] ([Name], [Address]) VALUES (@P1, @P2)
|
Пример 2
var insert = new Insert(userConnection).Into("Contact") .Set("Name", Column.Const("NameValue")) .Set("Address", Column.Const("AddressValue")); |
INSERT INTO [dbo].[Contact] ([Name], [Address]) VALUES ('NameValue', 'AddressValue')
|
Пример 3
var insert = new Insert(userConnection).Into("Contact") .Set("Name", Func.IsNull(Column.Parameter(string.Empty), Column.Parameter("ParameterValue"))); |
INSERT INTO [dbo].[Contact] ([Name]) VALUES (ISNULL(@P1, @P2))
|
Примеры запросов с условиями
Пример 1
var insert = new Insert(userConnection).Into("City") .Set("CreatedById", new Select(userConnection).Top(1) .Column("Id") .From("Contact") .Where("Name").IsEqual(Column.Parameter("Supervisor"))) .Set("ModifiedById", new Select(userConnection).Top(1) .Column("Id") .From("Contact") .Where("Name").IsEqual(Column.Parameter("User1"))); |
INSERT INTO [dbo].[City] ([CreatedById], [ModifiedById]) VALUES((SELECT TOP 1 [Id] FROM [dbo].[Contact] WHERE [Name] = @P1), (SELECT TOP 1 [Id] FROM [dbo].[Contact] WHERE [Name] = @P2)) |