Using invoke-sql I have a PowerShell script that returns results from a SQL Query. That query has the status of several data points local I want to colour code the entire row if the column of Status returns different values. Is this possible as I know you can colour code Charts in PowerShell but not sure how a larger return query would work?
param(
[string] $dataSource = "SQLName",
[string] $database = "DatabaseName",
[string] $sqlCommand = $("Select tbldatafeed.datafeed_name,REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(tbldatafeedhistory.status_id,1,'Running'),2,'Completed'),3,'Faulted'),4,'Warning'),5,'Terminating'),6,'Terminated'),7,'Pending') AS Status,DateDiff(MINUTE,tbldatafeedhistory.start_time, tbldatafeedhistory.end_time) As 'Run Time(minutes)'
from tblDataFeedHistory
left Join tblDatafeed on tbldatafeedhistory.datafeed_id = tbldatafeed.datafeed_id
inner join
(
Select max(start_time) as LatestDate, [datafeed_id]
from tblDataFeedHistory
Group by datafeed_id
) SubMax
on tblDataFeedHistory.start_time = SubMax.LatestDate
and tblDataFeedHistory.datafeed_id = SubMax.datafeed_id
WHERE tbldatafeed.is_active = 1
Order by tbldatafeed.datafeed_id")
)
$connectionString = "Data Source=$dataSource; " + "Integrated Security=SSPI; " + "Initial Catalog=$database"
$connection = new-object system.data.SqlClient.SQLConnection($connectionString)
$command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
$connection.Open()
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
$dataset = New-Object System.Data.DataSet
write-output $adapter.Fill($dataSet) | Out-Null
$connection.Close()
$dataSet.Tables
}
$FeedID = Invoke-SQL
$FeedID
The output would be a red highlighted line if the column returned Failed, yellow if the Column returns Warning, Green if the column returns Completed.