Saturday, June 07, 2008

この記事は

記事 関数名 説明
SQL*PLUSもどきを作る1 PSOracle SQL*PLUSもどきのメイン関数
SQL*PLUSもどきを作る1の説明 PSOracle SQL*PLUSもどきのメイン関数の説明
SQL*PLUSもどきを作る2 Get-OracleConnectionStirng 接続文字列を作成する
SQL*PLUSもどきを作る3 Execute-QueryString SQLを実行した結果をDataSetに格納して返す
SQL*PLUSもどきを作る4 desc descコマンド
SQL*PLUSもどきを作る5 Read-MultiLine コマンドラインから複数行の入力を受け取る
SQL*PLUSもどきを作る6 Execute-Query SQLを実行して、結果をコンソールウィンドウに表示する
SQL*PLUSもどきを作る5(改訂版) Read-MultiLine コマンドラインから複数行の入力を受け取る。終端判定を1文字以上でも行えるよう見直し。
SQL*PLUSもどきを作る7 Disconnect 切断処理

SQL*PLUSもどきを作る8

Write-SqlHistory SQL実行履歴の保存
SQL*PLUSもどきを作る6(改訂版) Execute-Query SQLを実行して、結果をコンソールウィンドウに表示する。SQL実行履歴作成機能の追加。

SQL*PLUSもどきを作る9

View-History SQL履歴からの実行機能作成

SQL*PLUSもどきを作る6(改訂版2)

Execute-Query その9で作成した機能を組み込み、さらにXMLエクスポート機能を付加。

SQL*PLUSもどきを作る10

View-Table SQL実行結果をデータグリッドビューへ表示する機能の作成

の続きです。

前回は、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の実行結果が、データグリッドビューにが表示されます。

Saturday, June 07, 2008 10:31:53 PM (Tokyo Standard Time, UTC+09:00)  #    Comments [0]  |  Trackback
Comments are closed.

Theme design by Jelle Druyts

Pick a theme: