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».
См. также: