Как увидеть значения переменных в блоке скриптов inlinescript, выполняемых в модуле Runbook Azure?
Это должно быть что-то совершенно очевидное, так что, если это простит меня. Я копался в постах, статьях и т. Д. Для лучшей части дня и надеюсь, что кто-нибудь сможет пролить свет на это.
Проблема в том, что мой DataSet Fill не работает в блоке скриптов inlinescript. Я искал, как посмотреть содержимое моих переменных $connectionstring, $query и $cmd в этом блоке скрипта inlinescript. Я определил строку подключения и переменную запроса. Я могу сделать $conn.Open(), и он не потерпит неудачу. Я передал переменные соединения и запроса в мой объект SQLCommand:
$cmd = New-Object system.Data.SqlClient.SqlCommand($query, $conn)
Я создаю объекты DataSet и DataAdaptor:
$ds = New-Object System.Data.DataSet
$da = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)
При выполнении следующего:
try {
[void]$da.Fill($ds)
}
catch {
Write-Error "Not able to fill dataset for list of customers!"
}
Ветка catch/error занята.
Я считаю, что результаты не возвращаются, поэтому $cmd пуст, что приводит к ошибке Fill. Находясь в Runbook, ни одна из команд, отправляющих вывод на консоль, не действительна. Возможность захвата содержимого переменных $connectionstring, $query и $cmd была бы огромной.
Кстати, код в $ query выполняется как ожидается в SSMS.
Без оператора try-catch это ошибка, которая появляется:
CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : InvalidOperationException You cannot call a method on a null-valued expression.