「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を変更した。