IMetabaseUpdateSqlNode.Sql

Синтаксис

Sql(Driver: String): String;

Параметры

Driver. Идентификатор драйвера СУБД.

В качестве значений данного параметра необходимо указывать одно из следующих значений:

Идентификатор СУБД
ORCL8 Oracle 9.x\10.x\11.x.
MSSQL Microsoft SQL Server 6.x\7.x\2000.
MSSQL2008 Microsoft SQL Server 2008.
MSSQL2012 Microsoft SQL Server 2012\2014.
OLEDB(ODBC HIVE) OLEDB(ODBC HIVE).
OLEDB(DB2) OLEDB(DB2).
OLEDB(ODBC) OLEDB(ODBC).
OLEDB(VISTADB) OLEDB(VISTADB).
OLEDB Файл базы данных.
DB2 DB2.
TRDT Teradata версии 13\13.10\14\14.10.
POSTGRES PostgreSQL версии 9.1\9.2\9.3\9.4.
POSTGRES(NO_LO) Greenplum/Pivotal HD Hawq.
SQLITE SQLite 3.8.1.
WSF Веб-сервис Prognoz Platform.

Описание

Свойство Sql определяет текст запроса SQL-оператора, выполняемого при обновлении.

Комментарии

Идентификатор драйвера БД, для которого рассчитан синтаксис SQL-запроса, передается посредством параметра Driver.

Пример

Для выполнения примера предполагается наличие в репозитории таблицы с идентификатором «Table_1» и базы данных с идентификатором «BD». В схеме, на которую настроена данная база данных, имеется таблица с физическим именем «LOG_TABLE». В данной таблице ведется история выполнения каких-либо действий. Таблица содержит поля «ACTION» и «DATE_ACTION», в которых будут указываться описание действия и дата, когда было совершено действие.

Sub Main;
Var
    Mb: IMetabase;
    Db: IMetabaseObject;
    Mu: IMetabaseUpdate;
    Root: IMetabaseUpdateFolderNode;
    SQLNode: IMetabaseUpdateSqlNode;
    DNode: IMetabaseUpdateDataObjectNode;
Begin
    Mb := MetabaseClass.Active;
    Db := Mb.ItemById("BD").Bind;
    Mu := Mb.CreateUpdate;
    Root := Mu.RootFolder;
    DNode := Root.Add(MetabaseUpdateNodeType.DataObject) As IMetabaseUpdateDataObjectNode;
    DNode.Object := MB.ItemById("Table_1");
    DNode.UpdatePart := MetabaseObjectUpdatePart.DataMetadata;
    SQLNode := Root.Add(MetabaseUpdateNodeType.Sql) As IMetabaseUpdateSQLNode;
    SQLNode.Label := "SQL";
    SqlNode.Sql((Db As IDatabase).DriverId) := "Insert Into Log_Table (ACTION,DATE_ACTION)
Values('Обновление таблицы Table_1', sysdate) ";
SqlNode.Database := Db.Key;
    Mu.SaveToFileNF("c:\Update.pefx");
End Sub Main;

После выполнения примера будет создано новое обновление. В обновление будут включены данные и метаданные таблицы «Table_1». Также в обновление будет включен SQL-оператор. При выполнении данного SQL-оператора в таблицу «Log_Table» будет добавляться новая запись, содержащая информацию об обновлении таблицы «Table_1». SQL-оператор будет выполняться в рамках сервера БД, на который настроена база данных «BD».

См. также:

IMetabaseUpdateSqlNode