Creatio development guide
Это документация Creatio версии 7.11.0. Мы рекомендуем использовать новую версию документации.

Построение запросов на изменение данных

Glossary Item Box

Для создания запросов на изменение данных в базе в bpm'online используется класс Update.

В качестве параметров конструктор класса Update может принимать следующие объекты:

  • Пользовательское подключение (Update (UserConnection)).
  • Пользовательское подключение и имя схемы, в которой будут изменяться данные (Update (UserConnection,String)).
  • Пользовательское подключение и объект источника данных (Update (UserConnection,ModifyQuerySource)).
  • Другой объект Update (Update (Update)). В результате будет создана копия запроса Update, переданного в параметре.

Ниже приведены примеры использования методов класса Update для построения запросов различной сложности. В каждом примере создается объект Update, а затем приводится текст SQL-запроса, который будет сгенерирован для различных СУБД (MS SQL).

Пример 1

ShowC#

var update = new Update(userConnection, "Contact")
        .Set("Name", Func.IsNull(Column.SourceColumn("Name"), Column.Parameter("ParameterValue"))); 

ShowMS SQL

UPDATE [dbo].[Contact] SET [Name] = ISNULL([Name], @P1)

Пример 2

ShowC#

var update = new Update(userConnection, "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"))); 

ShowMS SQL

UPDATE [dbo].[City]

SET [CreatedById] = (SELECT TOP 1 [Id]

FROM [dbo].[Contact]

WHERE [Name] = @P1),

[ModifiedById] = (SELECT TOP 1 [Id]

FROM [dbo].[Contact]

WHERE [Name] = @P2)

© Terrasoft 2002-2018.

Был ли данный материал полезен?

Как можно улучшить эту статью?