osql в powershell 1.0? - PullRequest
       10

osql в powershell 1.0?

1 голос
/ 19 февраля 2010

На моем Windows 2008 Server настроено соединение ODBC, и я пытаюсь заменить некоторые файлы .BAT, которые выполняют некоторую обработку, файлами Powershell.

Есть ли способ сделать то же самое?как это в PowerShell?

CALL osql / instanceName / Uuser / Ppassword / Q "EXECUTE StoreProcName @ Parm1 =% ePROFILE%, @ param2 = N '% eValList%'

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

SQL Server 2008 предоставляет командлет osql Powershell с именем invoke-sqlcmd, который выполняет те же действия, что и osql из Powershell.Тем не менее, если вы хотите продолжать использовать osql, вы должны иметь возможность сделать что-то подобное и продолжить использовать ваши пользователи Windows varaialbes:

osql / instanceName / Uuser / Ppassword / Q "EXECUTE StoreProcName @ Parm1 = $env: ePROFILE, @ param2 = N '$ env: eValList'

0 голосов
/ 20 февраля 2010

Если вы хотите, чтобы фактический объект Powershell работал после запроса к базе данных, вы можете использовать функцию, подобную этой, которую я недавно написал:

function Query-DatabaseTable ( [string] $server , [string] $dbs, [string] $sql )
{
  $Columns = @()
  $con = "server=$server;Integrated Security=true;Initial Catalog=$dbs"

  $ds = new-object "System.Data.DataSet" "DataSet"
  $da = new-object "System.Data.SqlClient.SqlDataAdapter" ($con)

  $da.SelectCommand.CommandText = $sql 
  $da.SelectCommand.Connection = $con

  $da.Fill($ds) | out-null
  $ds.Tables[0].Columns | Select ColumnName | % { $Columns += $_.ColumnName }
  $res = $ds.Tables[0].Rows  | Select $Columns

  $da.Dispose()
  $ds.Dispose()
  return $res
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...