kazpgmの日記

『プログラム自動作成@自動生成』作成の日記

「SQLログ取得.xls」のつづき。・・・「SQLConvert.exe」(SQL整形ツール)の使い方。

postgresのlog編集。のつづき。・・・
今日は”2.「SQLConvert.exe」(SQL整形ツール)の使い方。ログ1行のつどshellで立ち上げているのを、最初に1度立ち上げて、そのオブジェクトを使いまわす方法はないかな。”を考えた。結果、いい方法はないみたいだ。
こんな風に変更して試したが。「objWSHshell.SendKeys ("^Q")」を受け付けてくれない。のっけからだめってこと。としてうまくいってもwait(5)ではよくないので、、、(途中いろいろ考えたがみんなボツ)、、と考えたりしたが。これは自分の考えられる範囲を超えている気がするので。・・・・そのうちいい案が浮かぶこともあるだろう。24:30

<=02:30考えた。これで行こう。(そこそこいい案。便利さとスピードの両どりだから。さらに+αいれた、)
・全SQLログに「SQLConvert.exe」を使用するのは高コストになるのでやめることにしよう。SQLログを1SQLログを1行横書きにして出力する。(1回の取得で最高3000SQLログまでOKとしよう。全部横書きとしよう。)
<=02/03 修正した。

・「SQLConvert.exe」は、横書きのSQLログをきれいに編集したいとき使えるようにしよう。 <=02/03 修正した。
このとき日本語のSQLも一緒に吐き出すっていうのがいいのでは。これも高コストだから。使い方の手順は考え中。 <=02/03 公開するTOOLにはこのロジックを入れないようにする。

'■やってみたけどうまくいかないのでボツにした。
' SQL成型
Set objWSHshell = CreateObject("WScript.Shell")
objWSHrtn = objWSHshell.Run("C:\\PROGRA~1\\NodaSoft@\\SQLConvert\\SQLConvert.exe", 1, False)
wait (10)
・・・
' クリップボードに保存する
ClipBoard_SetData (str)
objWSHshell.SendKeys ("^Q")
wait (5)
' クリップボードからデータを取得する
str = ClipBoard_GetData
・・・
objWSHshell.SendKeys ("%{F4}") ' 終了
Set objWSHshell = Nothing
・・・
Private Sub wait(PauseTime)
    Dim Start
    Start = Timer    ' 開始時間を取得します。
    Do While Timer < Start + PauseTime
        DoEvents    ' 他のプロセスに明け渡します。
    Loop
End Sub

02/02 20:30-02:30
02/03 02:00-02:10
02/07 21:30-21:40 「SQLConvert.exe」の常駐に成功した。直接ソースhttp://d.hatena.ne.jp/kazpgm/20100125/1264441494を変更した。