DatabaseResult SetDatabase(OdId tOb, SetDatabaseArg tArg)
tOb. Моникёр базы данных.
tArg. Параметры выполнения операции.
Операция SetDatabase изменяет метаданные базы данных.
Операция позволяет изменить параметры подключения к серверу базы данных. База данных должна быть открыта на редактирование. Для выполнения операции укажите в поле tOb моникёр открытого экземпляра базы данных, а в поле tArg.meta обновлённые метаданных, которые необходимо применить. Моникёр может быть получен при выполнении операции OpenDatabase. Сохранение изменений осуществляется автоматически при выполнении операции. Результатом операции являются обновлённые метаданные базы данных.
Пример изменения параметров подключения к серверу БД. В запросе передается моникёр открытого экземпляра базы данных и значения параметров, которые необходимо установить (автоматическое подключение и использование учётных данных, указанных при подключении к репозиторию). В ответе приходят обновлённые метаданные.
{
"SetDatabase" :
{
"tOb" :
{
"id" : "S1!M!S!DB4"
},
"tArg" :
{
"meta" :
{
"connectionParams" :
{
"loginPrompt" : "false",
"useMetabaseCredentials" : "true"
}
}
}
}
}
{
"SetDatabaseResult" :
{
"id" :
{
"id" : "S1!M!S!DB4"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "24",
"@hf" : "0",
"i" : "DB_DATA",
"n" : "База данных",
"k" : "174189",
"c" : "513",
"p" : "9050",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "0",
"connectionParams" :
{
"useMetabaseLogonData" : "0",
"user" : "sa",
"pass" : "Qwerty1",
"logonDataExt" :
{
"driver" : "MSSQL2012",
"server" : "%METABASE_SERVER%",
"database" : "%METABASE_DATABASE%",
"schema" : "dbo",
"unicode" : "1",
"authentication" : "Password",
"caseSensitive" : "0",
"logonTask" :
{
"subName" : ""
},
"webServiceLogon" : "0"
},
"useUnicode" : "1",
"loginPrompt" : "0",
"useMetabaseCredentials" : "1",
"autoAdjustRights" : "0",
"useApplicationRole" : "0",
"supportDecimal" : "0",
"supportBinaryProtocol" : "1"
}
}
}
}
public static DatabaseResult ChangeDatabase(string moniker, bool loginPromptValue, bool useMetabaseCredentialsValue)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tSet = new SetDatabase()
{
tArg = new SetDatabaseArg()
{
meta = new DatabaseMd()
{
connectionParams = new ConnectionParams()
{
loginPrompt = loginPromptValue,
useMetabaseCredentials = useMetabaseCredentialsValue
}
}
},
tOb = new OdId() { id = moniker }
};
//Изменение параметров
var tResult = somClient.SetDatabase(tSet);
return tResult;
}
См. также: