#
# 名前
# Execute-Query
# 概要
# 指定されたQueryを実行し、テキストファイルに出力します。
#
# -Query SQL文
# -Fields 出力するColumn名
# -File 出力するテキストファイル
function Execute-Query([string]$query, $fields, $file){
[Data.SqlClient.SqlConnection]$conn = $null
[Data.SqlClient.SqlCommand]$cmd = $null
[Data.SqlClient.SqlDataReader]$reader = $null
$funcName = "Execute-Query"
# 改行をスペースに置換
$tmp = $query -replace "`r`n", " "
Write-Debug "QUERY=[$tmp]`t$funcName"
try{
$conn = New-Object Data.SqlClient.SqlConnection($DB_CON_STR)
$conn.Open()
Write-Debug "Connection Open.`t$funcName"
$cmd = New-Object Data.SqlClient.SqlCommand
$cmd.CommandText = $query
$cmd.Connection = $conn
#ExecuteReader
$reader = $cmd.ExecuteReader()
$count = 0
#出力バッファ
[Text.StringBuilder]$sb = New-Object Text.StringBuilder
while( $reader.Read() ){
foreach( $column in $fields ){
$sb.Append($reader[$column].ToString())
}
$sb.AppendLine()
$count++
}
$reader.Close()
Write-Debug "出力行数= $count`t$funcName"
#ファイルに出力
Add-Content $file ($sb.ToString())
}catch [Exception]{
throw $Error[0]
}finally{
if(!([String]::IsNullOrEmpty($conn))){
$conn.Close()
Write-Debug "Connection Close.`t$funcName"
}
}
}
2012/05/07
PowerShellでSqlDataReaderを使用するサンプル
PowerShellでSqlDataReaderクラスを使用して
データベースから値を取得するサンプル。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿