Как увидеть значения переменных в блоке скриптов 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.

0 ответов

Другие вопросы по тегам