Я пишу сценарий с целью получить некоторую информацию о запущенном процессе выполнения из базы данных sql.
Если бы я запустил следующую строку как запрос на сервере sql
SELECT Stage.Description as StageDesc,Stage.StageStatusId FROM [Build].[dbo].[WorkflowInstance_View] as Build join [Build].[dbo].[Stage_View] as Stage on Build.Id=Stage.[WorkflowInstanceId]where Stage.ParentId is null and Stage.StageStatusId <>4 and Stage.StageStatusId <>7 order by Build.Id desc
Я могу получить такой результат таблицы, который содержит информацию xml. :
Теперь вот мои коды от PowerShell, я стремился получить часть xml:
$connection= new-object system.data.sqlclient.sqlconnection
$Connection.ConnectionString ="server=SQLShare;database=Build;trusted_connection=True"
$connection.open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlQuery = "SELECT Stage.Description as StageDesc,Stage.StageStatusId FROM [Build].[dbo].[WorkflowInstance_View] as Build join [Build].[dbo].[Stage_View] as Stage on Build.Id=Stage.[WorkflowInstanceId]where Stage.ParentId is null and Stage.StageStatusId <>4 and Stage.StageStatusId <>7 order by Build.Id desc"
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$SqlCmd.Connection = $Connection
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$Connection.Close()
но в результате появилось только «2», это номер текущего запущенного процесса.
Поскольку я ооочень игнорирую sql-сервер. Может ли какой-нибудь орган узнать, как это сделать? Как я могу получить часть xml с помощью PowerShell?
Я делал такие вещи довольно часто. Не часть XML, а извлечение данных из SQL через Powershell.
$SqlQuery = "SELECT Thing, Item, FROM Tablename WHERE (Item < "5")"
$SqlCmd.CommandTest=$SqlQuery
$DBResult = $DBComand.ExecuteReader()
$DataTable = New-Object system.data.datatable
$DataTable.load($DBResult)
Теперь у вас есть объект типа Datatable, который нужно проанализировать.
foreach ($Row in $DataTable) {
[XML]$ReturnedXML=$Row.Thing()
DoSomethingWithXML($ReturnedXML)
}