У меня есть хранимую процедуру в (версия 4) скрипт PowerShell, который регистрирует результаты работыPowershell хранимая процедура Параметры не отправляются
function Log-Build($lastExitCode, $result, $taskId) {
$date = Get-Date
$connection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
$cmd = New-Object System.Data.SqlClient.SqlCommand
$myResult = $result -join "<br/>`r`n" |Out-String
$cmd.Connection = $connection;
$cmd.CommandText = "LSBuild_LogAndMailResult";
$cmd.Parameters.AddWithValue("@Task_ID",[string]$taskId);
$cmd.Parameters.AddWithValue("@Result",[string]$myResult);
$cmd.Parameters.AddWithValue("@Deployment_Status",[int]$lastExitCode);
$connection.Open()
$cmd.ExecuteNonQuery() | Out-Null
$connection.Close()
}
Однако, когда я бегу, я всегда получаю следующее сообщение об ошибке ответ:
.Исключение вызова "ExecuteNonQuery" с "0" аргумент (ы): «Процедура или функция 'LSBuild_LogAndMailResult' ожидает, что параметр '@Deployment_Status', который не был поставляемый
Я проверил в окне терминала в Powershell ISE, чтобы убедиться, что параметр был там ($ cmd.Parameters ["@ Deployment_Status"]. Значение;) и он определенно добавляется. Не знаю, почему он не получает передается в базу данных
'$ LASTEXITCODE' является автоматическим переменным, переименовать' параметра $ lastExitCode' в функции к чему-то еще –
Я просто попытался удалить $ lastExitCode и добавить твердокодированное целое число (0) в качестве параметра sql, но все равно получил тот же результат – Daryl1976