В PowerShell у меня есть эта функция: функция RunSQLServerQuery {param ([строка] $ server = «.», [Строка] $ instance = $ (бросить «Требуется имя базы данных»), [строка] $ запрос, $ параметры= @ {})
$connection = new-object system.data.sqlclient.sqlconnection( `
“Data Source=$server;Initial Catalog=$instance;Integrated Security=TRUE;”);
$connection.Open
$cmd=new-object system.Data.SqlClient.SqlCommand($query,$connection)
foreach($p in $parameters.Keys)
{
[Void] $cmd.Parameters.AddWithValue("@$p",$parameters[$p])
}
$dt=New-Object system.Data.DataSet
$da=New-Object system.Data.SqlClient.SqlDataAdapter($cmd)
$da.fill($dt) | Out-Null
return $dt.Tables[0]
}
Когда я называю это так:
$ MyTest = "select GetDate ()"
$ lines = RunSQLServerQuery "имя_сервера"«мастер» $ MyTest @ {}
$ строк
Я получаю следующие результаты:
MemberType: Method
OverloadDefinitions: {System.Void Open ()}
TypeNameOfValue: System.Management.Automation.PSMethod
Значение: System.Void Open ()
Имя: открыто
IsInstance: True
Столбец 1: 19.07.2011 2:14:13PM
Когда я проверяю значение $ dt.Tables [0] перед выходом из функции, это значение, как и ожидалось:
Столбец1 ------- 19.07.2011 2:16:13:00
Я не могу понять, почему это так.Я попытался переключить возврат на return, $ dt.Tables [0] , но это было безрезультатно.Я не могу понять, почему PowerShell добавляет этот текст при возврате из функции.Должно быть что-то простое, чего мне не хватает.
Boezo