Я нуб с PowerShell.и есть вопрос.У меня есть работающий сценарий PS1, который выполняет запрос SQL для получения параметра ID, затем создает PDF-файл из Crystal Report, формирует другую программу на основе этого возвращенного запроса SQL, а затем перебирает возвращенные параметры и повторяет их.Мне нужно добавить оператор обновления SQL в сценарий PS1, который обновляет таблицу на основе того же идентификатора, который возвращается из запроса SQL после создания PDF.Перед переходом к следующему идентификатору или после того, как скрипт создаст все PDF-файлы на основе идентификаторов.Это то, что мне нужно добавить в скрипт.
Update DB2.dbo.table2
SET DB2.dbo.table2.Field_01 = 1
FROM DB2.dbo.table2
WHERE (DB2.dbo.Table2.ID = {ID})
Работающий скрипт SP1 выглядит следующим образом.
$serverName="MAIN"
$databaseName="DB1"
$sqlCommand="select ID from ID_Query"
$connectionString = "Data Source=$serverName; " +
"Integrated Security=SSPI; " +
"Initial Catalog=$databaseName"
$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
$adapter.Fill($dataSet) | Out-Null
$connection.Close()
foreach ($Row in $dataSet.Tables[0].Rows)
{
$commandLine= -join(@'
"C:\Program Files (x86)\CR_Program\Program_name\CR_Printer.exe" -report="C:\Crystal_report.rpt" -exportformat=PDF -exportfile="c:\test\{Parameters.ID}.pdf" -parameters"
'@,$($Row[0]),@'
"
'@)
cmd /c $commandLine
}
Я надеюсь пометить столбец field_01 в 1, поэтомуСценарий не создает другой Crystal repoort.pdf для того же идентификатора, так как идентификатор будет помечен как 1, тогда выполняемый запрос его не увидит.
или, возможно, найдется лучший способ сделать это.
Спасибо.