< August 2004 | September 2004 | October 2004 >

September 28, 2004

ウォッチにエラーをわかりやすく表示する

小ネタ。
GetLastError() の値は、擬似レジスタ ERR でウォッチペインに表示することができる。この値に、書式指定子 hr を付加すると、エラーメッセージとして表示することができる。

DR DOS 7.03コマンドリスト

バッチファイルをさくせいしてて、ECHO コマンドで改行を出力する方法を調べてたら見つけた。
DR DOS 7.03 COMMAND LIST
作成中らしいけど、アルファベットごとになってて、なかなか見やすいです。

September 22, 2004

MakeSureDirectoryPathExists

Win32API の CreateDirectory 関数は親ディレクトリが存在していないと失敗するが、存在しなければ親ディレクトリも作ってくれる MakeSureDirectoryPathExists 関数というのがあるらしい。

Pathで指定されたディレクトリを新規に作成する。
Pathで指定したパスの末尾が\で終わっていない場合、Pathはファイル名とみなされ、そのファイルの為のディレクトリが作成される。例えば、Pathに"c:\aaa\bbb\ccc"と指定した場合、作成されるディレクトリは"c:\aaa\bbb"である。
Pathは、既存のディレクトリを指していても良い。その場合何もせずに正常終了する。
Pathが絶対パス指定の場合、ドライブ名(またはマシン名と共有名)を含んでいなければならない。

詳しい情報はあとで調査します。今時間ないの。記録のみ。

September 16, 2004

連番フォルダ作成JScript

連番フォルダ作成バッチの姉妹品。WSHさえ入っていれば動くので、拡張機能を使いまくったBATファイルより汎用的なのかも。

続きを読む...

連番フォルダ作成バッチ

私はバッチファイルを作るのが苦手。だから載せておく。試験のエビデンス保存先なんかに。ちなみに対話式。

続きを読む...

September 10, 2004

以上とか、未満とか。

このあいだ、使おうと思ったときに思い出せなかったので。

Oracle で、SQL を書く時に、各行について、「ある列が5以上かどうか」を真偽値でとりたい場合がある。こういうのは、DECODE 関数と LEAST 関数、GREATEST 関数なんかを駆使すると可能。たとえば、EMP表のSALが1000未満の人数、1000以上3000未満の人数、3000以上5000未満の人数、5000の人数を求めたいような場合を考えてみる。(もちろん、WHERE句で条件を指定して、COUNTした結果をUNIONすればいいのだけれど。)

SELECT
	SUM( DECODE( LEAST( SAL, 1000 ), 1000, 0, 1 ) )	AS "1000未満", 
	SUM( DECODE( LEAST( SAL, 1000 ), 1000, 
	     DECODE( LEAST( SAL, 3000 ), 3000, 0, 1 ) )
	                                              )	AS "1000以上3000未満", 
	SUM( DECODE( LEAST( SAL, 3000 ), 3000, 
	     DECODE( LEAST( SAL, 5000 ), 5000, 0, 1 ) )
	                                              )	AS "3000以上5000未満", 
	SUM( DECODE( LEAST( SAL, 5000 ), 5000, 1, 0)  )	AS "5000以上" 
FROM EMP
/
続きを読む...