Creatio development guide
PDF
Документация по разработке
Это документация Creatio версии 7.12.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-2019.

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

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