今日はまったバグ
昨日は風邪でほとんど進捗がなかったので、今日はがんばり、たぶん2日分の成果。
今日、はまったバグは、またSQLなのですが、あるSQL文の実行で80万レコードの集合ができます。
正解は4レコードなのですが。
これはダイナミックにSQL文を生成しているのですが、調査の結果、ループでまわしてUNIONクエリーを作るところで、うっかり、DISTINCTを入れ忘れたことが原因です。
Accessの場合はSELECT文はFROM句が必須です。それで定数を返すSQLなのですが、必ず存在するテーブルを使用しました。
2つ以上のUNIONは問題ありませんでした。
自動的にDISTINCT になるので。
問題は1つのSELECTのとき。
本来レコードは1つなのですが、FROM句で指定したテーブルのサイズになりました。それがJOINで次々に増幅して、80万レコードに。
というバグでした。


コメントする