2010年10月15日金曜日

◆PowershellでDBアクセス3

PowerShell: ◆PowershellでDBアクセスでは、Accessデータベースにアクセスしてみたので、今度はSQLServerにアクセスしてみる。

まぁ、接続文字列を変えるだけ。認証はWindows認証を使っている。

こんな感じ。

param(
    [string]$dataSource  ,
    [string]$dataBase  ,
    [string]$sqlCommand  ,
    [switch]${??}
)
$comment = @'
#####################################################

MRead-SQLServerDB.ps1
    SQLServerデータを読み込む。
param(
    [string]$dataSource  ,
    [string]$dataBase  ,
    [string]$sqlCommand  ,
    [switch]${??}
)
例: 
    # SQLServerにアクセスする
    MRead-SQLServer.ps1 -DataSource ".\sqlexpress" -DataBase "Northwind" -Sql "Select * from Orders"
#####################################################
'@
if(${??}) {$comment;return}
if(!$dataSource) {Write-Warning "Please specify a datasource." ; return}
if(!$sqlCommand) {Write-Warning "Please specify a query." ; return}

#接続文字列を準備する
$connectionString = "Provider=SqlOleDb;Data Source=$dataSource;Initial Catalog=$dataBase;Integrated Security=SSPI;"

#データソースに接続し開く
$connection = New-Object System.Data.OleDb.OleDbConnection $connectionString
$command = New-Object System.Data.OleDb.OleDbCommand $sqlCommand,$connection
$connection.Open()

#結果をフェッチし、接続を閉じる
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $command
$dataset = New-Object System.Data.DataSet
[void]$adapter.Fill($dataset)
$connection.Close()

#クエリーからすべての行を返す
$dataset.Tables | Select-Object -ExpandProperty Rows | Out-GridView

0 件のコメント:

コメントを投稿