frog.raindrop.jp

.knowledge
::January 2005

SUN MON TUE WED THU FRI SAT
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

B L O G T I M E S

Prev: December 2004

Next: February 2005

Last Modified
July 10, 2009 05:06 PM

Search



あわせて読みたいブログパーツ
RSS feed meter for http://frog.raindrop.jp/
counter
< December 2004 | February 2005 >

January 31, 2005

MakeSureDirectoryPathExists を VB6 でシミュレートする

VB6 で、MakeSureDirectoryPathExists 関数の動きをシミュレートしたものを作ったので、おいときます。

January 21, 2005

WSH でショートカットを作成する

WSH でショートカットを作成する方法です。どこにでも転がっているものと同じですが、自分のために。 コマンドラインコピーツール のインストーラとして作成したものです。

January 20, 2005

VB6 実行時エラーのコールスタックを採取する小ネタ

VB6 で、エラーをハンドリングする際のスケルトン。例によって VB6 に限定しているのは、.NET はまだ仕事で使ってないので語るものを持たないためです。

エラーを必ずハンドリングする必要があるのは、呼出元を持たないプロシージャ、つまり、Sub Main() 、イベントプロシージャ、またはコールバックプロシージャ(ウインドウをサブクラス化した時のウインドウプロシージャとか、フックプロシージャのこと)などで、自分自身が大元の呼び出し元であるプロシージャ達です。それ以外のエラーは呼出元に返すことができます。

呼出元に返す際に、 Err オブジェクトにプロシージャ名をセットしていくと、前述の呼出元プロシージャでは、呼出順をとることができます。

January 14, 2005

mt-comments.cgi に簡易スパムフィルタを実装する

あまりにもコメントスパムが多くなってきたので、mt-comments.cgi に急遽自前フィルタを追加してみた。結構いい感じ。

下記は 'sex' と 'porn' を含むコメントをポストできなくした例。

実際にはスパム業者はある程度絞れるので、具体的に特定の URL を本文に含むもの、などとしている。

January 6, 2005

コマンドラインコピーツール

小品。コマンドラインで渡された文字列をクリップボードにセットするだけのプログラム。ショートカットを「送る」に追加しておけば、任意のファイルのフルパスをクリップボードにコピーできたり。

January 5, 2005

EXTRACT の ORA-30076

EXTRACT という関数がある。Oracle や PostgreSQL に実装されているが、Oracleでの挙動が少々わかりにくい。

Oracle のSQLリファレンスによると

注意: 抽出を実行するフィールドは、datetime_value_expr または interval_value_expr フィールドである必要があります。たとえば、DATE 値からは、YEAR、MONTH およびDAY のみを抽出できます。同様に、TIMESTAMP WITH TIME ZONE データ型からは、TIMEZONE_HOUR および TIMEZONE_MINUTE のみを抽出できます。

という注意書きが付いているが意味が良くわかんないのである。確かに、SELECT EXTRACT(SECOND FROM SYSDATE) FROM DUAL を実行しようとすると

ORA-30076: 抽出ソースの抽出フィールドが無効です

と叱られる。じゃあいったい SECOND ってキーワードは何なの? である。