今日はまったバグ

| | コメント(0)

昨日は風邪でほとんど進捗がなかったので、今日はがんばり、たぶん2日分の成果。

今日、はまったバグは、またSQLなのですが、あるSQL文の実行で80万レコードの集合ができます。

正解は4レコードなのですが。

これはダイナミックにSQL文を生成しているのですが、調査の結果、ループでまわしてUNIONクエリーを作るところで、うっかり、DISTINCTを入れ忘れたことが原因です。

Accessの場合はSELECT文はFROM句が必須です。それで定数を返すSQLなのですが、必ず存在するテーブルを使用しました。

2つ以上のUNIONは問題ありませんでした。

自動的にDISTINCT になるので。

問題は1つのSELECTのとき。

本来レコードは1つなのですが、FROM句で指定したテーブルのサイズになりました。それがJOINで次々に増幅して、80万レコードに。

というバグでした。

カテゴリ

コメントする

このブログ記事について

このページは、Hiroshiが2006年3月21日 21:51に書いたブログ記事です。

ひとつ前のブログ記事は「不覚の風邪」です。

次のブログ記事は「進むときは進む」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0