この記事は
SQL*PLUSもどきを作る8
SQL*PLUSもどきを作る9
SQL*PLUSもどきを作る6(改訂版2)
SQL*PLUSもどきを作る10
の続きです。
前回は、SQL実行結果をデータグリッドビューに表示する部分を作成しました。
今回は、この関数を実際に使用できるようにExecute-Query関数を改造します。
#========================================================================================= # Execute-Query: QueryStringを実行する # # UPDATE 2008/04/28 Ver.1.0.0 # 2008/05/19 Ver.1.0.1 SQL履歴作成機能の追加 # 2008/06/03 Ver.1.0.2 履歴からの実行機能および取得データエクスポート機能の追加 # 2008/06/07 Ver.1.0.3 取得結果をデータグリッドビューに表示できるようにする # # copyright HIRO's.NET(http://hiros-dot.net/) #========================================================================================= function global:Execute-Query([string]$ExportXmlFile, [switch]$View, [switch]$History) { if ( $History ) { #履歴からの実行(Ver.1.0.2 ) $XmlFile = "$([Environment]::GetFolderPath(`"MyDocuments`"))\WindowsPowerShell\Oracle\History.xml" $SqlHis = View-History $XmlFile if ($SqlHis -eq $Null) { return } } if ( $SqlHis.Length -gt 0 ) { $strSQL = $SqlHis } else { Write-Host "SQLを入力してください。" -foregroundcolor Yellow Write-Host "`";`"で入力を終了し、実行します。" -foregroundcolor Yellow #複数行のQueryStringを受け取る $strSQL = Read-MultiLine } #履歴の作成(Ver.1.0.1) Write-SqlHistory $strSQL #QueryStringを実行する $dtSet = Execute-QueryString $strSQL if ( $dtSet.Tables.Count -gt 0 ) { #DataGridViewへの表示(Ver.1.0.3) if ( $View ) { View-Table $dtSet.Tables[0] } else { #format-tableコマンドレットでデータを表示 $dtSet.Tables[0].Rows | format-table } } #取得データをXMLにエクスポート(Ver.1.0.2) if ( $ExportXmlFile.Length -gt 0 ) { $dtSet.WriteXml($ExportXmlFile); } }
開発ポイント
Execute-Query関数を呼び出すときに、パラメータ View を指定することで取得結果をデータグリッドビューへ表示することが可能になります。
パラメータViewはスイッチパラメータを使用しており、実行時に View パラメータが指定されると、変数$ViewがTrueになる性質を利用して、前回作成したView-Table関数を呼ぶように作成してあります。
使用方法
PS > Execute-Query -View select * from emp;
これを実行すると、下記のようになります。
また、この関数は Histroy パラメータと同時に指定可能なので
PS > Execute-Query -View -History select * from emp;
のように入力とすると
上図が表示され、この画面で[選択]ボタンを押すと
選択したSQLの実行結果が、データグリッドビューにが表示されます。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail