GetDatabaseData

Синтаксис

Result GetDatabaseData(OdId tOb, GetDatabaseDataArg tArg)

Параметры

tOb. Моникёр объекта репозитория, являющегося базой данных.

tArg. Параметры выполнения операции.

Описание

Операция GetDatabaseData получает информацию о базе данных и её таблицах.

Комментарии

Для выполнения операции укажите в поле tOb моникёр объекта репозитория, являющегося базой данных, а в поле tArg шаблон, в соответствии с которым будет получена информация. Моникёр объекта может быть получен при выполнении операции GetObjects.

Результатом выполнения операции будет полученная информация о базе данных.

Пример

Ниже приведён пример получения информации о базе данных и её таблицах. В запросе передается моникёр базы данных в репозитории. В ответе возвращается драйвер, используемый базой данных, признак автоматического подключения и список физических имён таблиц, хранящихся на сервере СУБД.

В примере C# используется функция FindObjectById, код которой приведён в примере «Получение описания объекта по его идентификатору».

SOAP-запрос:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetDatabaseData xmlns="http://www.fsight.ru/PP.SOM.Som">
<tOb xmlns="">
  <id>GDDDOLIINILHGOAEPLFHMCEACBLGJGHEAKHGLPEKDKEIIJNJ!M!52</id>
  </tOb>
<tArg xmlns="">
<dataGet>
  <driver>true</driver>
  <loginPrompt>true</loginPrompt>
  <tables>true</tables>
  </dataGet>
  </tArg>
  </GetDatabaseData>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<GetDatabaseDataResult xmlns="http://www.fsight.ru/PP.SOM.Som" xmlns:q1="http://www.fsight.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<data xmlns="">
  <driver>POSTGRES</driver>
  <loginPrompt>0</loginPrompt>
<tables>
<its>
<it>
  <name>b_du</name>
  </it>
<it>
  <name>b_jau</name>
  </it>
<it>
  <name>obj132</name>
  </it>
<it>
  <name>obj133</name>
  </it>
<it>
  <name>obj162</name>
  </it>
<it>
  <name>obj200data</name>
  </it>
<it>
  <name>obj634</name>
  </it>
<it>
  <name>obj6460</name>
  </it>
<it>
  <name>obj6464</name>
  </it>
<it>
  <name>obj6466</name>
  </it>
<it>
  <name>obj6476</name>
  </it>
<it>
  <name>obj6537</name>
  </it>
<it>
  <name>obj6561</name>
  </it>
<it>
  <name>obj6602</name>
  </it>
<it>
  <name>obj664</name>
  </it>
<it>
  <name>t141</name>
  </it>
<it>
  <name>t158</name>
  </it>
<it>
  <name>t160</name>
  </it>
<it>
  <name>t203</name>
  </it>
<it>
  <name>t206</name>
  </it>
<it>
  <name>t568</name>
  </it>
<it>
  <name>t569</name>
  </it>
<it>
  <name>t627</name>
  </it>
<it>
  <name>t630</name>
  </it>
<it>
  <name>t642</name>
  </it>
<it>
  <name>t6426</name>
  </it>
<it>
  <name>t644</name>
  </it>
<it>
  <name>t646</name>
  </it>
<it>
  <name>t6478</name>
  </it>
<it>
  <name>t6480</name>
  </it>
<it>
  <name>t6532</name>
  </it>
<it>
  <name>t6535</name>
  </it>
<it>
  <name>t655</name>
  </it>
<it>
  <name>t6554</name>
  </it>
<it>
  <name>t6557</name>
  </it>
<it>
  <name>t657</name>
  </it>
<it>
  <name>t_month</name>
  </it>
<it>
  <name>t_quarter</name>
  </it>
<it>
  <name>t_sep</name>
  </it>
<it>
  <name>t_source</name>
  </it>
<it>
  <name>t_to</name>
  </it>
<it>
  <name>t_year</name>
  </it>
  </its>
  </tables>
  </data>
  </GetDatabaseDataResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"GetDatabaseData" :
{
"tOb" :
{
"id" : "GDDDOLIINILHGOAEPLFHMCEACBLGJGHEAKHGLPEKDKEIIJNJ!M!52"
},
"tArg" :
{
"dataGet" :
{
"driver" : "true",
"loginPrompt" : "true",
"tables" : "true"
}
}
}
}

JSON-ответ:

{
"GetDatabaseDataResult" :
{
"data" :
{
"driver" : "POSTGRES",
"loginPrompt" : "0",
"tables" :
{
"its" :
{
"it" :
[
{
"name" : "b_du"
},
{
"name" : "b_jau"
},
{
"name" : "obj132"
},
{
"name" : "obj133"
},
{
"name" : "obj162"
},
{
"name" : "obj200data"
},
{
"name" : "obj634"
},
{
"name" : "obj6460"
},
{
"name" : "obj6464"
},
{
"name" : "obj6466"
},
{
"name" : "obj6476"
},
{
"name" : "obj6537"
},
{
"name" : "obj6561"
},
{
"name" : "obj6602"
},
{
"name" : "obj664"
},
{
"name" : "t141"
},
{
"name" : "t158"
},
{
"name" : "t160"
},
{
"name" : "t203"
},
{
"name" : "t206"
},
{
"name" : "t568"
},
{
"name" : "t569"
},
{
"name" : "t627"
},
{
"name" : "t630"
},
{
"name" : "t642"
},
{
"name" : "t6426"
},
{
"name" : "t644"
},
{
"name" : "t646"
},
{
"name" : "t6478"
},
{
"name" : "t6480"
},
{
"name" : "t6532"
},
{
"name" : "t6535"
},
{
"name" : "t655"
},
{
"name" : "t6554"
},
{
"name" : "t6557"
},
{
"name" : "t657"
},
{
"name" : "t_month"
},
{
"name" : "t_quarter"
},
{
"name" : "t_sep"
},
{
"name" : "t_source"
},
{
"name" : "t_to"
},
{
"name" : "t_year"
}
]
}
}
}
}
}
public static GetDatabaseDataResult GetDatabaseData(MbId mb, string id)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tGet = new GetDatabaseData()
{
tArg = new GetDatabaseDataArg()
{
dataGet = new DatabaseDataPattern()
{
driver = true,
loginPrompt = true,
tables = true
}
},
tOb = new OdId() { id = mb.id + "!" + FindObjectById(mb, id).k }
};
// Получение информации о базе данных
var tResult = somClient.GetDatabaseData(tGet);
return tResult;
}

См. также:

Работа с реляционными объектами репозитория